Ich schreibe ein kleines Programm für die Kommunikation mit einem bestimmten USB-HID-Produkt (identifiziert durch Hersteller- und Produkt-IDs), mit libusb-1.0 unter Linux. Im Moment muss ich das Programm als root ausführen, weil "libusb Schreibzugriff auf USB-Geräteknoten benötigt". Gibt es eine Möglichkeit, die Berechtigungen auf dem Gerät zu ändern, die ich brauche, damit ich mein Programm nicht als root ausführen muss?Zugriff auf USB-Gerät unter Linux (libusb-1.0)?
8
A
Antwort
10
Auf modernen Linux-Systemen erstellt udevd
(man 7 udev
) die Geräteknoten für USB-Geräte, wenn sie angeschlossen sind. Fügen Sie eine udev-Regel hinzu, die Ihrem Gerät entspricht (z. B. über USB-Anbieter und Produkt-IDs) setzt den OWNER
/GROUP
/MODE
des Geräteknotens.
Der beste Ansatz besteht wahrscheinlich darin, eine neue Gruppe für Benutzer zu erstellen, die auf das Gerät zugreifen dürfen, und dies dann als Gruppenbesitzer in der udev-Regel festzulegen. Sie müssen möglicherweise auch MODE
verwenden, um sicherzustellen, dass es über Lese-/Schreibberechtigungen für Gruppen verfügt. Z.B. Ihre Regel wird wahrscheinlich etwas wie folgt aussehen:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="ffee", ATTRS{idProduct}=="5a5a", MODE="0660", GROUP="foobar"
Verwandte Themen
- 1. Zugriff auf SQLServer mit Node.js unter Linux
- 2. Skript unter Linux für SSH-Zugriff signieren
- 3. C++ Zugriff auf SQL Server von Linux
- 4. Zugriff auf JAR-Datei unter Cygwin
- 5. Zugriff auf GPU auf Docker unter Windows 10
- 6. Recording Memory Footprint unter Linux
- 7. Direkter Zugriff auf Linux Framebuffer - Copyarea
- 8. Ruft close() fsync() unter Linux auf?
- 9. Schriften auf org.eclipse.swt.widgets.Composite sind unter Linux
- 10. grundlegende Chat-System auf Perl unter Linux
- 11. ASP.Net unter Linux
- 12. Squeak SMTPs unter Linux
- 13. GetTcpTable entspricht unter Linux
- 14. libswiftDemangle.so unter Linux
- 15. Benchmark-Programme unter Linux
- 16. Umgebungsvariablen in Python unter Linux
- 17. Dokumentenverwaltung unter Linux
- 18. tchar.h unter Linux
- 19. ARM-Entwicklung unter Linux
- 20. Echtzeit-Audioanalyse unter Linux
- 21. Monitor Batteriestatus unter Linux
- 22. arpalert unter Linux
- 23. OpenCL Kompilieren unter Linux
- 24. Laravel Rückkehr int unter Windows und Rückgabestring auf Linux
- 25. pgmagick Installation unter Linux
- 26. va_list Fehlverhalten unter Linux
- 27. Zugriff auf das SDCard-Verzeichnis unter Android
- 28. Zugriff auf Remote-Kernel-Objekte unter Windows
- 29. Beep unter Linux in C
- 30. C++ Flash unter Linux
Diese nicht auf mich arbeiten, bis ich Anführungszeichen um „0660“ – kynnysmatto
Concur mit dem obigen Kommentar hinzugefügt. Zitate um die "0660" erforderlich, damit dies funktioniert. Ich habe eine Änderung an der ursprünglichen Antwort eingereicht, aber leider wurde sie als zu geringfügig abgelehnt:/ –
@ phil-lavin: Ich weiß nicht, warum Ihre Änderung abgelehnt wurde, aber ich habe sie trotzdem angewendet. – caf