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

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

SUBSYSTEMS=="scsi", SUBSYSTEM=="block" KERNEL=="sd[bh]1" 

但我不知道我怎么能阻止他们安装!

我知道我必须将其相关的USB设备的授权文件设置为零! 但如何findUSB设备path? $ DEVPATH给了我存储设备块的path,例如sdb1!

编辑:我有一个应用程序,应该给一些USB大容量存储权限。 所以用来阻挡usb大容量存储的方法不应该是非常静态的!

提前致谢。

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

 # 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上测试过

最简单的方法是将usb-storage内核模块列入黑名单。 这只有在被编译为模块的情况下才能工作,而不是直接编译到内核中。 您可以使用modprobe -n usb-storage.ko或通过在/ lib / modules / $(uname -r)/ kernel / drivers / usb / storage /

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