如何防止所有USB大容量存储器安装?

时间:2012-09-07 08:19:46

标签: linux usb udev

我想阻止使用udev规则挂载各种usb海量存储。 我已经可以使用以下规则检测连接到我系统的所有usb海量存储:

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

但我不知道如何防止它们出现!

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

编辑:我有一个应用程序应该允许一些usb大容量存储。所以阻止usb海量存储的使用方法不应该是非常静态的!

提前感谢。

2 个答案:

答案 0 :(得分:2)

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

# 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"

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

您应该能够用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上测试了这个

答案 1 :(得分:1)

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

中查找

如果它被编译为模块,你可以通过在/etc/modprobe.d/blacklist(.conf)中添加一个条目来黑名单。对于Debian,请参阅this guide