我计划将 USB 设备列入白名单,最初所有内容都会被拒绝,然后将某些 USB 列入白名单。
我已经在 UDEV 中编写了这些规则,但它似乎不起作用。它只是否认一切。规则如下:
全部拒绝:
ACTION=="add", SUBSYSTEMS=="usb", RUN+="/bin/sh -c 'for host in /sys/bus/usb/devices/usb*; do echo 0 > $host/authorized_default; done'"
允许 SanDisk Pendrive:
ACTION=="add", SUBSYSTEMS=="usb",ATTR{manufacturer}=="SanDisk", RUN+="/bin/sh -c 'echo 1 >/sys$DEVPATH/authorized'"
任何帮助,将不胜感激。
答案1
第一条规则拒绝父节点(USB 集线器、USB 端口……到 USB 设备)。请记住 sysfs 是一棵树。
您应该以叶子(USB 设备)为目标。
GOTO
您可以使用单个规则,而不是使用多个规则并尝试进行管理。
检查这个(我当前机器中的设备名称示例:)2-1.2:1.0
:
ACTION=="add", KERNEL=="[0-9]-[0-9].[0-9]:[0-9].[0-9]", SUBSYSTEMS=="usb", ATTR{manufacturer}!="SanDisk", RUN+="/bin/sh -c 'echo 0 >/sys$DEVPATH/authorized'"