У меня есть домашнее устройство, которое можно подключить через USB-порт. При подключении он получает сокет ttyACM. Поэтому я задал этот вопрос некоторое время назад о том, как установить права на чтение / запись для устройства. После ответа я создал /etc/udev/rules.d/50-ttyusb.rules
файл с таким содержанием:
KERNEL=="ttyUSB[0-9]*",MODE="0666"
KERNEL=="ttyACM[0-9]*",MODE="0666"
Все работает отлично! Но если я правильно понимаю, теперь каждое устройство, подключенное к любому сокету ttyUSB или ttyACM, будет иметь права на чтение / запись. Правильно?
Мой вопрос: как я могу автоматически устанавливать разрешения на чтение / запись только для этого устройства при подключении?
Соответствующий вывод lsusb
:
Bus 003 Device 005: ID ffff:0005
можно использовать ATTRS{idVendor}
& ATTRS{idProduct}
для отфильтровывания целевых устройств:
ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"
я добавляю ACTION=="add"
уже для пропуска другого нежелательного события remove
(узел устройства, удаленный) & change
(узел устройства, уже добавленный и настроенный)