USB / z.B. Scanner als "normaler" User benutzen

serie300

Well-Known Member
Hallo

die Rechtevergabe im FreeBSD usb Subsystem treibt mich gerade ein bisschen zur Verzweiflung. Auf meinem neu aufgesetzten FreeBSD13.2 Rechner wollte ich den (Flachbett) Scanner verwenden (der lief auch auf der alten Installation); als root geht's, als normaler Nutzer nicht. Da ich nicht eine "zusammengefrickelte" Installation vom Altsystem übernehmen wollte habe ich das Handbuch und das Internet genommen und versucht das sauber anzulegen. Gemäß FreeBSD Handbuch dachte ich mir, daß es sinnvoll ist USB Geräte einer Gruppe USB zuzuweisen, der ich die einzelnen Nutzer hinzufüge (s. auch Handbuch "8.7.3. Giving Other Users Access to the Scanner". So sollten m.E. auch USB Serial Konverter und ähnliches ohne weiteres Gefrickel für die User nutzbar sein. Aber es geht irgendwie nicht. Mit den weiteren Tips aus dem Internet habe ich wohl zwei Methoden gemischt
Meine Konfiguration schaut jetzt so aus:
Code:
scanimage -L als root:
device `genesys:libusb:001:002' is a Canon LiDE 210 flatbed scanner
Der Scanner ist also erkannt.
Die Gruppe USB ist erstellt und der entsprechende Nutzer hinzugefügt.
Code:
pw groupshow usb
usb:*:1002:meinuser

Eintrag für meinen Scanner in /usr/local/etc/devd
Code:
/usr/local/etc/devd/saned.conf:
 
notify 100 {
        match "system" "USB";
        match "subsystem" "INTERFACE";
        match "type" "ATTACH";
        match "cdev" "ugen[0-9].[0-9]";
        match "vendor" "0x04a9";
        match "product" "0x190a";
        action "chown -L saned /dev/$cdev && chmod -L 660 /dev/$cdev";
};

Code:
/etc/devfs.rules:
[system=5]
# Erlaube USB Scanner
add path 'uscan*' mode 0666 group usb

Code:
/etc/rc.conf:
...
saned_enable="YES"
devfs_system_ruleset="system"
Der Scanner wird erkannt und saned und operator zugewiesen.
Code:
ls -l /dev/usb
...
crw-rw----  1 saned  operator  0x1a5 21 Mai  09:28 1.2.0

Ich will jetzt nicht jeden Nutzer, der USB nutzen soll auch der Gruppe "operator" zuweisen. Was muß ich machen, daß das sauber ist und ich als Nutzer der Gruppe "usb" die Rechte auf USB Geräte habe; bzw. ist es eine schlechte Idee einem user alle USB Rechte zu geben.
 
Ich habe jetzt im FreeBSD Handbook auch nachgesehen und da hat sich seit damals etwas verändert. Den Schritt mit der Erstellung einer "/usr/local/etc/devd/saned.conf" kannte ich nicht, ich hatte mich damals immer nach dieser allgemeinen Anleitung zu devfs gerichtet, die jetzt, wie ich sehe, gar nicht mehr existiert:


Danach sollte man eine "/etc/devfs.rules" erstellen, wie hier auch erwähnt wird. Mein Scanner funktioniert immernoch, ich hatte nie etwas geändert, also niemals eine "/usr/local/etc/devd/saned.conf" erstellt. Deswegen würde ich gerne mal nachfragen, ob es mehrere Möglichkeiten gibt, die Rechte für einen User zum Scannerbetrieb zu konfigurieren und welcher der schnellste und einfachste ist und warum der o.g. Artikel im WIKI nicht mehr existiert? Ich hatte auch mal gehört, eine Möglichkeit sei es, den User einfach der Gruppe "saned" zuzufügen, davon ist aber im Handbook-Artikel nicht die Rede?
 
Vielen Dank! Ich wollte noch darauf hinweisen, dass man auf den nicht funktionierenden Link kommt, wenn man in dem Artikel "1.71. K3b einrichten" auf den entsprechenden Link klickt:
1684772709612.png
 
Nachdem USB Devices ohne weiteres Zutun der Gruppe Operator zugewiesen werden, habe ich jetzt meinen User der Gruppe Operator hinzugefügt. Läuft. Aber schön ist anders.
 
Nachdem USB Devices ohne weiteres Zutun der Gruppe Operator zugewiesen werden, habe ich jetzt meinen User der Gruppe Operator hinzugefügt. Läuft. Aber schön ist anders.
Danke für das Feedback. Und ja, deswegen habe ich mit anderen Worten auch nach dem schönsten Weg gefragt. Vielleicht könnte sich doch jemand noch dazu äussern? Also den im Handbook beschriebenen Weg, wo man eine Konfigurationsdatei (saned.conf) erstellen soll, in die man vorher ausgelesene Werte eintragen muss, finde ich extrem unschön.
 
Den saned braucht man m.E. bei Einzelplatz Benutzung gar nicht. Der ist gemäß 'man saned' für die Ansteuerung über das Netz (müßte also auch über lo0 gehen; müßte weil habe ich nicht ausprobiert), aber da habe ich mich nicht weiter eingearbeitet. Den saned habe ich auch aus der rc.conf entfernt, weil der soll lt. man page nicht unter root laufen und genau das macht er dann.
 
Nachdem USB Devices ohne weiteres Zutun der Gruppe Operator zugewiesen werden, habe ich jetzt meinen User der Gruppe Operator hinzugefügt
Hast Du denn mal geguckt wegen dem Device-Namen?
Wenns das ist, wäre es ja nur eine kleine Änderung in der /etc/devfs.rules (wo dann nur der richtige Device-Name eingetragen werden muss) und dann läuft es ja wie Du vor hast.
Wie gesagt. Alternativ kannst Du auch die /usr/local/etc/devd/saned.conf anpassen.

Läuft. Aber schön ist anders.
Ja. Insbesondere, da operator noch auf zahlreichen anderen Kram zugreifen darf.
 
Wenns das ist, wäre es ja nur eine kleine Änderung in der /etc/devfs.rules (wo dann nur der richtige Device-Name eingetragen werden muss) und dann läuft es ja wie Du vor hast.
Wie gesagt. Alternativ kannst Du auch die /usr/local/etc/devd/saned.conf anpassen.
Also man braucht entweder /usr/local/etc/devd/saned.conf oder /etc/devfs.rules? Kann man sich also aussuchen?
 
Also man braucht entweder /usr/local/etc/devd/saned.conf oder /etc/devfs.rules? Kann man sich also aussuchen?
In dem Fall kann man sich das im Prinzip aussuchen.
Idealerweise sollte man aber gleiche Aktionen nicht in beidem machen. Sprich sowas wie Gruppenfestlegung bei devfs und devd ist ungünstig, weil das eine das Andere quasi überschreibt.
Insofern ist es ganz gut, das Du da nachfragst. Das könnte nämlich eine weitere Ursache dafür sein, warum die Gruppe nicht korrekt vergeben wird. Nämlich das sie zwar vergeben wird, aber von der devd-Konfig. wieder überschrieben wird.

Ich bin mir jetzt nicht zu 100% sicher, aber so "auf Schlag" würde ich sagen, das die devfs-Rules vor der devd-Konfig. angewendet werden.
Von daher würde ich wohl im vorliegenden Fall die devfs-Rule löschen/auskomentieren und die den betreffenden devd-Eintrag anpassen.
action "chown -L saned:usb /dev/$cdev && chmod -L 660 /dev/$cdev";
 
So ich habe jetzt saned.conf abgeschalten und in devfs.rules add path 'usb/*' mode 0660 group usb gesetzt. Funktioniert. /dev/usb/* bekommt als Grouprechte 'usb'. Mir ist klar, daß ich das über devd auf einzelne USB Geräte granulieren könnte.
 
Zurück
Oben