Как сделать, чтобы устройство имело разрешения на чтение / запись при подключении?
У меня есть самодельное устройство, и я написал программу для получения данных с него. Но каждый раз, когда я подключаю устройство, я должен изменить разрешения для /dev/ttyACM0
, так что порт можно использовать для передачи данных. Как сделать так, чтобы это устройство имело права на чтение / запись по умолчанию. lsusb
Выход для этого устройства:
Bus 003 Device 005: ID ffff:0005
2 ответа
Если вы являетесь членом dialout
группа вы можете получить доступ к последовательным устройствам, в том числе ttySx
, ttyUSBx
, а также ttyACMx
устройства, без изменения разрешений.
$ sudo adduser myusername dialout
В качестве альтернативы вы можете создать правило udev для установки разрешений при подключении устройства. См. /questions/676854/kak-razreshit-polzovatelyu-ne-yavlyayuschemusya-polzovatelem-po-umolchaniyu-ispo/676873#676873
Я добавлю ответ на свой вопрос для всех, кому это понадобится в будущем. Я последовал за ответом @Adam Lussier и создал /etc/udev/rules.d/50-ttyusb.rules
файл с этим содержанием (предложенный @Sneetsher):
ACTION=="add", KERNEL=="ttyACM[0-9]*", ATTRS{idVendor}=="ffff", ATTRS{idProduct}=="0005", MODE="0666"
Таким образом, только этому конкретному устройству предоставляются разрешения на чтение / запись. Ссылка для тех, кто хочет узнать больше о написании файла правил.