通过 Udev 将 USB 列入白名单

通过 Udev 将 USB 列入白名单

我计划将 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'"

相关内容