Question

Je suis en train d'écrire un petit programme pour communiquer avec un câble USB spécifique produit HID (identifié par ID de fournisseur et du produit), en utilisant libusb-1.0 sur Linux. En ce moment, je dois exécuter le programme en tant que root, car « libusb requiert un accès en écriture aux nœuds de périphériques USB ». Est-il possible de changer les autorisations sur l'appareil que j'ai besoin pour que je ne ai pas besoin d'exécuter mon programme en tant que root?

Était-ce utile?

La solution

Sur les systèmes Linux modernes, udevd (man 7 udev) crée les noeuds de périphériques pour les périphériques USB quand ils sont branchés. Ajouter une règle udev qui correspond à votre appareil (par exemple., Vous pouvez correspondre par le fournisseur USB et ID produit), et ensembles le OWNER / GROUP / MODE du noeud périphérique.

La meilleure approche est probablement de créer un nouveau groupe pour les utilisateurs qui devraient être en mesure d'accéder à l'appareil, puis définissez que le propriétaire du groupe dans la règle udev. Vous devrez peut-être utiliser MODE pour vous assurer qu'il dispose des autorisations de lecture / écriture groupe. Par exemple. votre règle sera probablement quelque chose comme:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="ffee", ATTRS{idProduct}=="5a5a", MODE="0660", GROUP="foobar"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top