J'ai joué avec pyusb récemment et constaté qu'il fonctionne magnifiquement sur Linux (Ubuntu a < un href = "http://www.libusb.org/" rel = "noreferrer"> libusb 0.1 et 1.0, ainsi que openusb ) ... mais seulement si j'exécute le programme avec des privilèges root (avec Quelqu'un peut-il me dire pourquoi il nécessite des privilèges élevés et, plus important encore, si je peux modifier les autorisations en quelque sorte pour le faire fonctionner pour des comptes d'utilisateurs normaux? P> sudo code>, bien sûr). p>
3 Réponses :
En général, tous les accessoires matériels directs nécessitent des privilèges code> racine code>, bien que je suppose que les privilèges code> root cod> ne sont pas nécessaires, vous devez être correct avec juste libusb code> vous permet de manipuler des périphériques USB arbitraires de manière arbitraire. Vous pouvez formater un disque dur USB externe, par exemple. P>
cap_sys_rawio code>. p>
Comment définir Cap_sys_rawio avec pyusb?
CAP_SYS_RAWIO CODE> peut être trivialement levé pour obtenir une racine complète, de sorte que vous ne gagnez rien en utilisant cette capacité à la place.
Vous pouvez modifier les autorisations de votre nœud de périphérique USB en créant une règle Udev.
par exemple. J'ai ajouté la ligne suivante à un fichier dans Ceci définit le propriétaire du nœud de périphérique à Après m'ont ajouté au groupe code> USBUSERS code>, je peux accéder au périphérique. P> < / p> /etc/udev/rules.d / code>
ROOT: usbusers code> plutôt que
root: root code> p>
Cool ... va essayer bientôt!
Voir la réponse que j'ai donnée ici:
Comment puis-je communiquer avec cet appareil à l'aide de PYUSB?
nommément: 1.
Créez un fichier de règles UDEM P> mettre ceci dans un fichier appelé (par exemple) /lib/udev/roules.d/50-Yoursoftwarename.rules (creuser dans l'homme udev Pour les règles de dénomination de fichier) 2.
Ajoutez les noms d'utilisateur au groupe PlugDev P> 3.
Forcer le système UDev pour voir vos modifications p> 4.
Débranchez et rebranchez le périphérique
ou
Redémarrez votre machine p> Le résultat final devrait être que tous les membres du groupe PlugDev pourront désormais accéder au périphérique. P> EDIT:
Notez que sur certains systèmes, le groupe
Configurez un fichier de règles UDEM pour le périphérique spécifique que vous souhaitez que les utilisateurs normaux puissent accéder. Cela définira l'ID du fournisseur, l'ID de produit et un groupe.
Le fournisseur et l'ID de produit peuvent être trouvés à l'aide de la commande lsusb code>. p>
Remarque: l'ancienne convention de dénomination utilisée /etc/udev/rules.d/filename.rule, qui a changé. P> adduser nom d'utilisateur plugdev code> p>
Sudo Udevadm Control --Reload CODE> (CELUS MOINS MOINS RELOAD)
Sudo Udevadm Trigger Code> P>
plugdev code> n'est peut-être pas le groupe dont vous avez besoin. Il peut également s'agir du groupe
entrée code> dans mon expérience, en fonction de ce que vous branchez. P> p>