Как сделать так, чтобы конкретное устройство имело права на чтение / запись при подключении?
У меня есть домашнее устройство, которое можно подключить через 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
1 ответ
- Да, это дает разрешение публичным пользователям на все эти последовательные устройства.
Ты можешь использовать
ATTRS{idVendor}
&ATTRS{idProduct}
отфильтровать целевые устройства:ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"
я добавить
ACTION=="add"
пропустить другое нежелательное событиеremove
(узел устройства уже удален) &change
(узел устройства уже добавлен и настроен)