简单问题:如何在/lib/udev/rules.d/
目录中添加仅适用于 USB 闪存驱动器的规则?
例如,如果我只想允许插入我的 PC 的 USB 闪存驱动器。或者只允许我的闪存驱动器。是否有任何设备类型/组可用于此目的?
有人能给新手提供一些例子吗?希望这个问题很容易解决:)
答案1
我之前回答过一个类似的问题,并举了一个例子:
使用此命令,
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
设备连接到要使用的端口时报告的路径。我还没有测试过这个,但我认为这是一种合乎逻辑的方法。