udev белый список USB устройств

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.

Ответить


Этот вопрос предназначен для предотвращения автоматической отправки форм спам-ботами.
Смайлики
:smile: :( ;-) :roll: :pardon: 8) :x :oops: :shock: :cz2: :-D :ROFL: :Yahoo!: :cry: :Search: :Bravo: :good: :bad: :sorry: :no: :unknown: :evil: :crazy: :"": :fool: :-o :drinks: :st: :bn:
Ещё смайлики…

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Развернуть Обзор темы: udev белый список USB устройств

udev белый список USB устройств

Сообщение CTOPMbI4 » 2017-04-07 18:05:54

Леха. Требования заказчика. Теперь и на линуксе)

udev белый список USB устройств

Сообщение CTOPMbI4 » 2017-04-06 21:55:22

Доброго времени суток комрады Linux.
Озадачился вопросом. Блокировки всех устройств USB кроме разрешенных. Чтобы сотрудники не подключали левые девайсы по USB.
Делал по этой ссылки [url]https://wiki.gentoo.org/wiki/Allow_only … sb_devices[/url]
Собственно версия ОС.
# uname -a

Код: Выделить всё

Linux TEST 3.0.101-68.4-desktop #1 SMP PREEMPT Tue Dec 1 17:21:37 CET 2015 (ed01a9f) x86_64 x86_64 x86_64 GNU/Linux

Набросал правила в

Код: Выделить всё

 /etc/udev/rules.d/
# Skeep not USB
SUBSYSTEM!="usb", GOTO="usb_end"
# Skeep remove actions
ACTION=="remove", GOTO="usb_end"

#Usb-Intel-HUB
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="8087", ATTR{authorized}="1", GOTO="usb_end"

#Usb-HUB1
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="1d6b", ATTR{authorized}="1", GOTO="usb_end"

#Microsystems-HUB
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="0424", ATTR{authorized}="1", GOTO="usb_end"

#Usb-Hasp-Key
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="1111", ATTR{authorized}="1", GOTO="usb_end"

#Keyboard
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="046d", ATTR{authorized}="1", GOTO="usb_end"

#Mouse
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="045e", ATTR{authorized}="1", GOTO="usb_end"

#Flash
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{serial}=="55555", ATTR{authorized}="1", GOTO="usb_end"

# Disable all other USB devices
SUBSYSTEMS=="usb", ACTION=="add", ATTR{authorized}="0"

LABEL="usb_end"

То есть взял вывод с
lsusb

Код: Выделить всё

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 1111:0001 Aladdin Knowledge Systems HASP copy protection dongle
Bus 001 Device 003: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 004: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 001 Device 005: ID 045e:0797 Microsoft Corp. Optical Mouse 200
Bus 001 Device 006: ID 5555:161a Kingston Technology Dell HyperVisor internal flash drive

Решил проверять по параметру
ATTRS{idProduct}
Таким образом все работает, пропускает все устройства. Причем и те которые не добавлены в данный список.
Тут возникли вопросы: Как посмотреть где находится устройства, клава, мышь и т.д.
Чтобы проверить их параметры как с Flash.
Как я понял должны находится тут

Код: Выделить всё

/sys/bus/usb/devices
ls /sys/bus/usb/devices/ |grep -v ':'
1-3
1-4
1-4.1
1-4.2
1-4.4
3-1
4-1
usb1
usb2
usb3
usb4

Саму Flash нашел
udevadm info -a -p /sys/block/sdc
Вопрос в правилах указывать
ATTR
или
ATTRS
?
Где ошибся почему не работает так как задумано?

Отправлено спустя 40 минут 53 секунды:
Как я понял если разрешить

Код: Выделить всё

#Usb-Intel-HUB
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="8087", ATTR{authorized}="1", GOTO="usb_end"

то все устройства пропускаются и дальнейшие правила уже не просматриваются.
Почему так происходит?

Отправлено спустя 16 секунд:
Как я понял если разрешить

Код: Выделить всё

#Usb-Intel-HUB
SUBSYSTEMS=="usb", ACTION=="add", ATTR{idVendor}=="8087", ATTR{authorized}="1", GOTO="usb_end"

то все устройства пропускаются и дальнейшие правила уже не просматриваются.
Почему так происходит?

Вернуться к началу