Предоставить приложению / пользователю доступ к USB-устройству

У меня есть приложение Mono, работающее на Raspbian, которое использует определенное USB-устройство через libusb. Если я обычно запускаю приложение, оно не может открыть устройство. Если я запускаю приложение как root (или через sudo), приложение успешно открывает устройство.

Как я могу дать приложению или пользователю надлежащие разрешения для устройства USB, чтобы приложение не запускалось с правами root?

1 ответ

Чтобы предоставить определенной группе доступ к USB-устройству, необходимо добавить правило udev в /etc/udev/rules.d/, Я добавил файл с именем 50-MyDevice.rules который содержит эту строку:

SUBSYSTEM=="usb",ATTRS{idVendor}=="abcd",ATTRS{idProduct}=="1234",MODE="0660",GROUP="mygroup",SYMLINK+="mydevice%n"

Где я заменил значения после idVendor и idProduct на VID и PID устройства USB. Обратите особое внимание на количество знаков равенства после каждого параметра!

После этого я перезагрузил Linux.

Теперь, каждый раз, когда я подключаю USB-устройство (или если я подключаю несколько таких же устройств), я получаю символическую ссылку под названием /dev/mydevice1 или же /dev/mydevice2, Это символическая ссылка, указывающая на /dev/bus/usb/001/001 (или во втором случае /dev/bus/usb/001/002). Цели этих символических ссылок имеют надлежащий режим и разрешения группы, определенные в файле правил.

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