Предоставить приложению / пользователю доступ к 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
). Цели этих символических ссылок имеют надлежащий режим и разрешения группы, определенные в файле правил.