如何使用 udev 规则为 usb 设备创建白名单?

如何使用 udev 规则为 usb 设备创建白名单?

我正在尝试使用 udev 规则为我的 CentOS 机器上的 USB 设备创建白名单,但是我得到不一致的结果。

我尝试使用“echo 0/1 > /sys/bus/usb/devices/1-4/authorized”阻止特定 USB 端口上的一个设备,并设置 ATTR{authorized}="0/1",效果很好,但是当我尝试阻止/允许所有其他设备时,它似乎忽略了相反的规则。我也尝试添加“last_rule”选项,但没有效果。

我的规则放在/etc/udev/rules.d/01-usb-block.rules中:

ACTION    != "add", GOTO = "usblist_rules_end"
SUBSYSTEM == "usb", GOTO = "usblist_usb_rules"
GOTO="usblist_rules_end"

LABEL="usblist_usb_rules"

# Enable G20
ATTR{idVendor}=="0525", GOTO="usblist_rules_end"
ATTRS{idVendor}=="0525", GOTO="usblist_rules_end"

# Enable USB to serial hub
ATTR{idVendor}=="0403", GOTO="usblist_rules_end"
ATTRS{idVendor}=="0403", GOTO="usblist_rules_end"

# Enable linux foundation 3.0 root hub
ATTR{idVendor}=="1d6b", ATTR{idProduct}=="0003", GOTO="usblist_rules_end"
ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0003", GOTO="usblist_rules_end"

# Enable linux foundation 2.0 root hub
ATTR{idVendor}=="1d6b", ATTR{idProduct}=="0002", GOTO="usblist_rules_end"
ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0002", GOTO="usblist_rules_end"

# Disable all other devices
ATTR{authorized}="0"
ATTRS{authorized}="0"

LABEL="usblist_rules_end"
EOF

当我连接 USB 鼠标或键盘时,在所连接端口上使用 udevadm info 时,“授权”属性似乎保持不变。有什么建议吗?

相关内容