如何在 rules.d 中仅为 USB 闪存驱动器设置规则

如何在 rules.d 中仅为 USB 闪存驱动器设置规则

简单问题:如何在/lib/udev/rules.d/目录中添加仅适用于 USB 闪存驱动器的规则?

例如,如果我只想允许插入我的 PC 的 USB 闪存驱动器。或者只允许我的闪存驱动器。是否有任何设备类型/组可用于此目的?

有人能给新手提供一些例子吗?希望这个问题很容易解决:)

答案1

我之前回答过一个类似的问题,并举了一个例子:

当检测到 I/O 时运行脚本

使用此命令,

udevadm monitor --property

插入 USB 并检查您想要使用的设备所共有的属性,例如:

ID_TYPE=disk
ID_USB_DRIVER=usb-storage

然后创建你的规则

sudo gedit /etc/udev/rules.d/96-myusb.rules

将这些值

ACTION=="add", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk", ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-add.sh"

ACTION=="remove", SUBSYSTEM=="usb",ENV{ID_TYPE}=="disk",ENV{ID_USB_DRIVER}=="usb-storage",RUN+="/usr/local/bin/myusb-remove.sh"

规则文件只会影响那些ENV{ID_TYPE}与 和匹配的设备ENV{ID_USB_DRIVER}。它不会影响任何其他设备。如果您想限制其余设备,也许您可​​以创建一个与 其余设备匹配且 不执行任何操作的规则RUN

如果您希望仅在某个 USB 设备连接到特定 USB 端口时运行该操作,请尝试将 ENV{DEVPATH}="yourUSBPATH" 添加到规则文件中。将 yourUSBPATH 替换为将udevadm monitor --property设备连接到要使用的端口时报告的路径。我还没有测试过这个,但我认为这是一种合乎逻辑的方法。

相关内容