在 Red Hat 7 中如何将 USB 模块 禁用

检查USB 模块是否已正确加载

# lsmod | grep -i usb
usb_storage            66762  0

模块看起来加载得很好,下面的命令将查看当前安装在服务器上的 USB 设备

# lsscsi
[0:0:0:0]    storage HP       P244br           4.52  
[0:1:0:0]    disk    HP       LOGICAL VOLUME   4.52  /dev/sda
[1:0:0:0]    cd/dvd  HP       Virtual DVD-ROM        /dev/sr0

将USB模块列入黑名单

必须使用以下文件将任何模块列入黑名单

/etc/modprobe.d/local-blacklist.conf

其中使用的语法是

blacklist <module name>

例如将 USB 模块列入黑名单:

# vim /etc/modprobe.d/local-blacklist.conf
blacklist usb-storage

保存并退出文件。

现在,仅当模块不是任何依赖项的一部分时,上述使用的语法才会将模块列入黑名单。

例如。
firewire 模块是像 be2net 这样的网络驱动程序的依赖项,所以如果我将 firewire 模块列入黑名单,但由于 be2net 驱动程序需要它,be2net 将在系统启动期间激活列入黑名单的模块。

为了避免这种情况,需要添加下面的行。

例如在这里,我使用了firewire模块,可以替换为 usb-storage.ko

# vim /etc/modprobe.d/local-blacklist.conf
blacklist firewire
install firewire /bin/false

保存文件并退出。

接下来,我们必须重建 initramfs,确保修改在重新启动后依旧生效。

重要提示:备份我们现有的 initramfs ,以防万一新的 initramfs 失败或者有问题

# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.before_update.bak

接下来运行下面的命令来重建 initramfs

# dracut -v -f

我们需要重启服务器才能生效,或者在当前活动会话临时禁用。

从当前会话禁用 USB 模块

# rmmod usb-storage.ko

这将从内核中删除 usb 模块

或者

也可以使用下面命令来 删除 USB 模块

# modprobe -r usb-storage.ko

现在重新生成内核依赖项列表和加载的模块。

# depmod -a

这将检测所有模块。

现在我们可以验证系统上是否仍加载了 USB 模块

# lsmod | grep -i usb_storage

没有输出,说明模块被成功删除并列入黑名单

日期:2020-06-02 22:16:54 来源:oir作者:oir