Как сделать так, чтобы конкретное устройство имело права на чтение / запись при подключении?

У меня есть домашнее устройство, которое можно подключить через 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
2
задан 14 April 2017 в 01:23

1 ответ

  • Да, это дает разрешение общедоступным пользователям для всех тех последовательных устройств.
  • можно использовать ATTRS{idVendor} & ATTRS{idProduct} для отфильтровывания целевых устройств:

    ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"
    

    я добавляю ACTION=="add" уже для пропуска другого нежелательного события remove (узел устройства, удаленный) & change (узел устройства, уже добавленный и настроенный)

1
ответ дан 14 April 2017 в 01:23

Другие вопросы по тегам:

Похожие вопросы: