Получить доступ к USB-устройству на Linux (libusb-1.0)?
Я пишу небольшую программу для связи с конкретным продуктом USB HID (идентифицированным поставщиком и идентификаторами продукта), используя libusb-1.0 в Linux. Прямо сейчас, я должен запустить программу как root, потому что"libusb требует доступа на запись к узлам USB-устройств". Есть ли способ изменить разрешения на устройстве, которое мне нужно, чтобы мне не нужно было запускать мою программу как root?
1 ответов
в современных системах 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"