3

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

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

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .