2010-11-29 4 views
8

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

ответ

10

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

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

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

Это не работает на меня, пока я не добавил кавычки вокруг «0660» – kynnysmatto 2013-10-04 21:44:59