Как создать белый список для usb-устройств, используя правила udev? - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь создать белый список, используя правила udev для USB-устройств на моем компьютере с CentOS, однако я получаю противоречивые результаты.

Я попытался заблокировать одно устройство на определенном USB-порту, используя: 'echo 0/1> / sys / bus / usb / devices / 1-4 / авторизован' и настройка ATTR {авторизованный} = "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 на подключенном порту. Есть предложения?

...