Ich habe eine USB-Waage, einen USB-HID. Derzeit kann der Superuser nur mit den Berechtigungen darauf zugreifen, wenn es eingesteckt ist. Wie kann ich udev so konfigurieren, dass jeder auf dieses Gerät zugreifen kann? Ich habe die Hersteller- und Produkt-IDs, möchte sie jedoch stattdessen anhand des HID-Typs abgleichen.
Im Moment habe ich Probleme, eine bestehende Regel zu finden, die darauf zutrifft (ich habe unter anderem nach "Hidraw" in /lib/udev/rules.d
und gegriffen /etc/udev/rules.d
).
quelle
.rules
Endung haben. Eine Datei mit einer.conf
Erweiterung funktioniert nicht.lsusb -vvv
idProduct und idVendor erhaltenlsusb
ist ein guter Anfang, um zu sehen, was verbunden ist und IDs.idVendor
BeiidProduct
Übereinstimmungen wird zwischen Groß- und Kleinschreibung unterschieden , daherDA77
funktioniert ID bei mir nicht,da77
aber. (Handliche Diagnose:udevadm info --attribute-walk /dev/bus/usb/008/023
Bus 008 Gerät 023 mein Beispiel;lsusb
für Ihr.) Nach dem Hinzufügen einer Regelsudo udevadm control --reload-rules
und dannsudo udevadm trigger
vermeidet Neustart: Änderungen sind Sekunden danach . ATTR vs ATTRS machten keine Quoten. Meine .rules Datei lautet:SUBSYSTEM=="usb", ATTR{idVendor}=="da77", ATTR{idProduct}=="d12e", GROUP="users", MODE="0666"
.Nur für die Zusammenfassung:
Sie können filtern nach:
Und benutze:
== Vergleiche für Gleichheit.
! = Vergleiche auf Ungleichung.
= Weisen Sie einem Schlüssel einen Wert zu. Schlüssel, die eine Liste darstellen, werden zurückgesetzt und nur dieser eine Wert wird zugewiesen.
+ = Wert zu einem Schlüssel hinzufügen, der eine Liste von Einträgen enthält.
: = Weisen Sie einem Schlüssel schließlich einen Wert zu; spätere Änderungen nicht zulassen.
Sie können einem bestimmten Gerät in / dev / ... einen bestimmten neuen Pfad zuweisen.
Beispiel:
Ergebnisse in:
Sie können einfach über '/ dev / hiddevx' oder über '/ dev / myhid' auf das Gerät zugreifen. Jeder Benutzer in der Gruppe 'cdrom' kann vom Gerät lesen. Der Besitzer 'user28' kann lesen und schreiben.
oder am einfachsten:
Ergebnis: Jeder Benutzer kann von Vendor 0x16c0 aus auf jedes Gerät zugreifen
Einzelheiten finden Sie unter: Dokumente
quelle
:=
ist nicht für Vergleiche. In der Dokumentation heißt es: "Weisen Sie einem Schlüssel endgültig einen Wert zu; lassen Sie spätere Änderungen nicht zu."Für den Fall, dass Sie (wie ich)
ttyACM0
Berechtigungen ändern müssen , sind dies meine Einstellungen:Es ist fehlgeschlagen, als ich versucht habe, den Anbieter und die Produkt-ID anzugeben. Ich bin mir nicht sicher warum.
quelle
Wenn es ein HIDRAW-Gerät ist, müssen Sie
Wobei X die versteckte Gerätenummer ist, zB hidraw0. du kannst tun
um eine Liste zu sehen :) Oder einfach machen
für alle hidraw geräte einstellen, wahrscheinlich nicht zu empfehlen.
quelle
Ubuntu 18.04 Update / Klarstellung:
Die Antwort von Kees Cook ist nah, aber es sind 2 Änderungen erforderlich, um in 18.04 zu funktionieren (die aktuelle Version und nur eine, auf der ich dies getestet habe).
Aber mit Ihren Hex-Werten idVendor und idProduct.
quelle
ATTRS
sowohl für Lieferanten- als auch für Produkt-ID? Dann ist Ihr Codebeispiel falsch (genau wie Sie zwei Zeilen später angeben).