Получить доступ к USB-устройству в Linux (libusb-1.0)? - PullRequest
9 голосов
/ 29 ноября 2010

Я пишу небольшую программу для связи с определенным продуктом USB HID (идентифицируется по поставщику и идентификатору продукта), используя libusb-1.0 в Linux.Прямо сейчас я должен запустить программу от имени пользователя root, потому что «libusb требует доступа на запись к узлам устройства USB».Есть ли способ изменить разрешения на устройстве, которое мне нужно, чтобы мне не нужно было запускать программу с правами root?

1 Ответ

11 голосов
/ 30 ноября 2010

В современных системах Linux udevd (man 7 udev) создает узлы устройств для USB-устройств, когда они подключены. Добавьте правило udev, соответствующее вашему устройству (например, вы можете сопоставить по идентификатору USB-производителя и идентификатору продукта) и устанавливает OWNER / GROUP / MODE узла устройства.

Наилучшим подходом, вероятно, является создание новой группы для пользователей, которые должны иметь доступ к устройству, затем установитеэто как владелец группы в правиле udev.Вам также может понадобиться использовать MODE, чтобы убедиться, что у него есть права на чтение и запись для группы.Например.ваше правило, вероятно, будет выглядеть примерно так:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="ffee", ATTRS{idProduct}=="5a5a", MODE="0660", GROUP="foobar"
...