PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechte vergabe usb device



klaus_harrer
13.03.10, 20:09
Hallo

Ich habe schon seit Tagen mein Drucker zu drucken zu bewegen.
Jetzt habe ich heraus gefunden das es an der Rechtevergabe des usb device liegt.

mit:



sudo chmod 777 /dev/bus/usb/004/005


Kann ich z.b drucken.
Jetzt meine Frage wie wird die Rechtevergabe beim Start des Sytems für usb devices geregelt.

Nutze Debian Lenny

MfG
Klaus Harrer

oziris
13.03.10, 23:21
Ich bin mir bei Deinem Gerät jetzt nicht 100% sicher, aber i.d.R. läuft das so:
Die Rechte werden eigentl. von udev festgelegt, wenn das Gerät erkannt wird. Bei jedem Start wird es erkannt und daher werden dann immer die Rechte festgelegt. Wenn Du sie manuell veränderst hält das dann natürlich nur bis zum nächsten Start.
Die Rechte sind in /etc/udev/rules.d/ voreingestellt, das ist aber extrem empfindlich und kritisch und Du solltest Backups haben und sie zurückspielen können, selbst wenn Dein System nicht mehr startet, bevor Du daran rumspielst.
Die Text-Dateien dort, z.B. die 91-permissions.rules , enthalten Regeln, in denen meist ein MODE oder eine GROUP für ein neu erkanntes Gerät definiert sind. Diese werden dann dem Device-Node in /dev zugewiesen, wenn es angelegt wird.
Wie Du schon erkennst, ist das System dazu vorgesehen, dass ein Benutzer nicht die Rechte für die Device-Nodes ändert, sondern eher in die richtige Gruppe kommt, die dann auf das Device-Node zugreifen kann. Ein Benutzer kann in mehreren Gruppen sein. Zum Drucken ist es i.d.R. die Gruppe "lp".
Probleme gibt es aber dann, wenn ein Gerät nicht richtig erkannt wird, denn es hilf auch nix, wenn man z.B. in der richtigen Gruppe für die Benutzung von Band-Laufwerken ist, aber das Laufwerk nicht als solches erkannt wurde...

Lange Rede kurzer Sinn: Versuche bitte mit folgendem herauszufinden, für welche Gruppe das Gerät ist
ls -l /dev/bus/usb/004/005und dann kontrolliere bitte, ob Du in der passenden Gruppe dafür bist, mit
idund wenn das nicht passt, dann empfehle ich, dass Du Dich zusätzlich noch der entspr. Gruppe hinzufügst und dann sollte das gehen.

Wenn Da aber nichtmal keine ordentliche Gruppe bei dem Device-Node steht, dann hast Du erstmal ein richtiges Problem. Das wird dann nämlich kompliziert und da halte ich mich dann vielleicht lieber raus.

PS: Bitte beachte, dass der Dateipfad /dev/bus/usb/004/005 vermutlich dynamisch ist und davon abhängen kann an welchem Port das Gerät angestöpselt ist. Dadurch kannst Du nur dann eine Schluri-Lösung machen, die die Rechte bei jedem Start nachträglich verändert, solange das Gerät immer am selben Port hängt usw..

klaus_harrer
14.03.10, 11:24
Hallo oziris

Danke allein für die ausführliche Beschreibung.

Ich habe nachgesehen welche Rechte das device besitzt



crw-rw-r-- 1 root lp 189, 387 14. Mär 2010 /dev/bus/usb/004/004


Ich bin auch Mitglied der Gruppe lp.
Was ich denke ist das die Rechte nicht ausreichen um auf das Device zuzugreifen.
Denn ich muss die Rechte auf 777 setzen um zu drucken und udev setzt sie auf 664.
Schön wäre es zu wissen wie die Rechte gesetzt werden sollten um auf das Device zuzugreifen. Ich denke 777 wäre zu viel.

Ich habe herausgefunden das wenn man die Rechte auf 666 setzt drucken kann.

MfG
Klaus Harrer

oziris
14.03.10, 13:44
Klar, weil die Daten, die gedruckt werden sollen ins Device-Node geschrieben werden müssen. Also Schreibrechte sind nötig. 7 ist aber eigentl. zu viel, weil das Ausführen-Rechte beinhalten würde und es ist ja keine Anwendung. 664 müssten auch eigentl. reichen, weil 6 ist ja schreiben und lesen (rw) und 4 nur lesen (r). Druckst Du über CUPS? Wenn ja, dann scheint der CUPS-Prozess in der falschen Gruppe zu sein.

PS: Warum benutzt Du eigentl. die oktal Zahlen als Parameter für chmod und nicht die symbolischen, die für Menschen erdacht sind?

L00NIX
14.03.10, 13:53
PS: Warum benutzt Du eigentl. die oktal Zahlen als Parameter für chmod und nicht die symbolischen, die für Menschen erdacht sind?

Na weil jeder Tastendruck kostbar ist... zumindest mache ich das deswegen so. ;)

klaus_harrer
14.03.10, 14:44
Hallo oziris



Druckst Du über CUPS? Wenn ja, dann scheint der CUPS-Prozess in der falschen Gruppe zu sein


Ja ich drucke über Cups.

Weiß nicht ob das richtig ist aber ich habe über "ls -all /var/run/cups/cupsd.pid"

die Gruppe des Cups Prozess herauzubekommen



-rw-r--r-- 1 root root 5 14. Mär 14:06 /var/run/cups/cupsd.pid


Und muß man die Gruppe über eine udev Regel ändern?

Vielleicht sollte ich noch erwähnen das ich einen HP Drucker und deshalb hplip nutze.

MfG
Klaus Harrer

L00NIX
14.03.10, 15:03
Weiß nicht ob das richtig ist aber ich habe über "ls -all /var/run/cups/cupsd.pid"

die Gruppe des Cups Prozess herauzubekommen



-rw-r--r-- 1 root root 5 14. Mär 14:06 /var/run/cups/cupsd.pid


Und muß man die Gruppe über eine udev Regel ändern?
[/code]

Normalerweise sollte die Distribution es richtig gemacht haben.

Den Benutzer und die Gruppe des CUPS-daemon stellt man über die Datei /etc/cups/cupsd.conf ein. Dort gibt es dann sowas wie:


...

# User (User)
#
# The user the server runs under. Normally this
# must be lp, however you can configure things for another user
# as needed.
#
# Note: the server must be run initially as root to support the
# default IPP port of 631. It changes users whenever an external
# program is run...
#
# ex: lp
#
#User lp

User lp

# Group (Group)
#
# The group the server runs under. Normally this
# must be lpadmin, however you can configure things for another
# group as needed.
#
# ex: lpadmin
#
#Group lpadmin

Group lp

...


Wenn bei dir auch "lp" als Gruppe drinsteht, sollte CUPS keine Probleme haben.

Wenn du dich nach der Anmeldung am System in die Gruppe "lp" aufgenommen haben solltest, melde dich mal ab und wieder an, da diese Änderung an deinem Benutzer erst nach einer Neuanmeldung zieht.

Und Logfiles vom CUPS liegen in /var/log/cups mit den Namen access_log, error_log und page_log.

Gruß
L00NIX

klaus_harrer
14.03.10, 15:22
Hallo L00NIX

Jetzt ist das Problem gelöst.
Group stand auf lpadmin statt auf lp.
Verstehe nicht warum das Debian falsch setzt.

MfG
Klaus Harrer

L00NIX
14.03.10, 15:45
Verstehe nicht warum das Debian falsch setzt.

Ich habe hier auch Debian Lenny und da ist es richtig gesetzt. Könnte allerdings auch daran liegen, dass ich keine Neuinstallation gemacht habe und die config noch von etch oder sogar sarge übernommen ist.

Hier gehört der lpadmin rein:


# System group (SystemGroup)
#
# The group name for "System" (printer administration)
# access. The default varies depending on the operating system, but
# will be sys, system, or root (checked for in that order).
#
# ex: lpadmin
#
#SystemGroup lpadmin

SystemGroup lpadmin


Gruß
L00NIX