3

我想防止使用udev规则安装各种 USB 大容量存储。

我已经可以使用以下规则检测到连接到我的系统的所有 USB 大容量存储设备:

SUBSYSTEMS=="scsi", SUBSYSTEM=="block" KERNEL=="sd[b-h]1"

但是我怎样才能防止它们安装呢?

我知道我必须将其相关USB设备的授权文件设置为零!但是我怎样才能找到 USB 设备路径呢?$DEVPATH 为我提供了存储设备块的路径,例如 sdb1!

我有一个应用程序应该允许某些 USB 大容量存储设备。所以用来屏蔽USB大容量存储设备的方法不应该是一成不变的!

4

2 回答 2

3

以下规则可防止除第一个分区以外的所有分区自动挂载:

# Rule: Only mount first partition found on /dev/sd* (USB) devices.
ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="sd*[2-9]", ENV{UDISKS_PRESENTATION_NOPOLICY}="1"

原因:在有多个分区的U盘中,我只想自动挂载第一个。如果需要,我手动安装其他人。

您应该能够用 KERNEL=="sd*" 替换分区匹配器,以获得:

# Rule: Do not automount any partitions found on /dev/sd* (USB) devices.
ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="sd*", ENV{UDISKS_PRESENTATION_NOPOLICY}="1"

这可以防止自动安装,然后您可以手动管理。

我只在 Ubuntu 10.10 上测试过这个

于 2012-10-26T09:15:20.023 回答
1

最简单的方法是将usb-storage内核模块列入黑名单。但是,这仅在它被编译为模块而不是直接编译到内核中时才有效。您可以检查modprobe -n usb-storage.ko,或通过在 /lib/modules/$(uname -r)/kernel/drivers/usb/storage/ 中查找它

如果它被编译为一个模块,您可以通过在 /etc/modprobe.d/blacklist(.conf) 中添加一个条目来将其列入黑名单 对于 Debian,请参阅本指南

于 2012-09-07T08:57:18.027 回答