• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Zugriffsberechtigungen bei Scannern

Ich werde hier mal den Versuch starten Hinweise zu geben und
zu sammeln, wie man am Besten als normaler Benutzer auf
seinen Scanner zugreifen kann, wenn YAST versagen sollte.

Bitte beachten, dass wir hier aktuell SuSE10.x haben, einige
Aussagen, bitte dahingehend zur Kenntnis nehmen. Falls
ihr zusätzliche Infos vermisst oder habt, bitte melden und/oder
ergänzen.

Generell gilt inzwischen, dass sämtliche Zugriffsberechtigungen
via udev eingestellt werden. Die ensprechenden Einstellungen
befinden sich unter /etc/udev. Hotplug spielt in diesem Zusammen-
hang eine im weniger wichtige Rolle. Ebenso sollte man sich mit
dem automatischen Laden von Modulen auch nicht mehr abmühen
sollen.

Es gilt auch, dass viele Geräte keine speziellen Kerneltreiber
mehr haben sondern über Libraries wie libusb und libieee1284
auf die entsprechenden Subsysteme wie USB und Parport
zugreifen.


USB-Geräte
-------------

Bei den USB-Geräten sollte YAST inzwischen zuverlässig arbeiten,
ansonsten:

Misiu unterhält eine ständig aktualisierte Linksammlung:
http://www.linux-club.de/ftopic17223.html

Für SuSE gilt:
http://de.opensuse.org/Spezial:Search?search=scanner&go.x=0&go.y=0&go=Los

Hier noch ein paar weitere Tips:

1. /etc/init.d/sane-dev

Dieser "Dienst" sollte via YAST -> System -> Runleveleditor
überprüft und ggf. gestartet werden. Das sollte bei der Installation
eines Scanners automatisch passieren, aber überprüfen schadet
nix.

Als root-User kann man via
Code:
rcsane-dev status
den aktuellen Zustand prüfen und via
Code:
rcsane-dev start
bei angeschaltetem und eingestecktem Scanner den
Dienst starten.

2. Der Resourcenmanager

Lege unter /etc/resmgr.conf.d eine Datei mit Namen
51-scanner.conf an und fülle Sie wie folgt:

Code:
# Use /usr/sbin/lsusb to create entries like: 
# add usb:vendor=0x1a2b,product=0x3c4d scanner 
# to grant access to USB scanners: 
add usb:vendor=0x04a9,product=0x220d scanner

Wobei natürlich vendor und product angepasst werden müssen.
(siehe Ausgabe von lsusb). Danach wird der resmgr neu
gestartet:

Code:
rcresmgr restart

Nun sollte der Scanner auch für einen Benutzer verfügbar sein.

3. Holzhammer-Methode

In der Datei /etc/fstab sollte folgender Eintrag zu finden sein:

Code:
usbfs           /proc/bus/usb   usbfs           noauto 0 0

Um nun jedem Zugriff auf die USB-Geräte zu gewähren, kann
man den Eintrag wie folgt ändern:
Code:
usbfs           /proc/bus/usb   usbfs           noauto,devmode=0666 0 0

Es ist auch möglich User- und Group-IDs zu vergeben:
devuid und devgid

Seit SuSE 10.1 wird das usbfs nicht mehr genutzt, sondern via
udev und entsprechenden Regeln in /dev/bus/usb abgebildet.
Dort greift auch die libusb entsprechend hin. Um jetzt die Nodes
hier für alle nutzbar zu machen, ist eine Änderung in der Datei
/etc/udev/rules.d/50-udev-default.rules notwendig.

Der Eintrag mit der Überschrift
Code:
# libusb device access
endet mit
Code:
MODE="0644"
ändert man auf 666, sollte beim nächsten Einstecken der Zugriff
für alle möglich sein.


Parallelport-Geräte
--------------------

Parallelport Backends wie z.B. das Plustek_PP Backend sind
inzwischen in der Lage ohne Kernelmodul auf den Scanner
zugreifen zu können. Dummerweise verwendet das Backend
eine Library namens libieee1248, welche so schlau ist und im
Rootmodus so ziemlich alles probiert um auf den Parallelport
zugreifen zu können. Das funktioniert beim normalen Benutzer
leider nicht. Der Nebeneffekt ist der, dass YAST den Scanner
erkennt und einrichtet, leider aber vergisst das so zu machen,
dass der normale User darauf zugreifen kann.

Um als User auf den Parallelport zugreifen zu können, sollte
man dafür sorgen, dass das Modul ppdev geladen worden ist.
Am besten als Eintrag in der /etc/init.d/boot.local

Code:
modprobe ppdev

Dies sorgt dafür, dass Devicenodes (Gerätedateien) wie /dev/parport0 etc.
angelegt werden. Diese sind dann entsprechend mit
Zugriffsrechten zu versehen und schon kann man als normaler
User darauf zugreifen. Das funktioniert wie folgt:

Unter SuSE10.0 gab es noch die Datei
Code:
/etc/udev/static_devices.txt
über welche man die Devicenodes automatisch mit den benötigten
Zugriffsrechten anlegen konnte - diese ist seit der 10.1
verschwunden. Dort sollte man eine entsprechende udev Regel
anlegen. Dazu wechselst man in das Verzeichnis
/etc/udev/rules.d und öffnet die Datei 50-udev-default.rules

Es genügt folgende Zeile anzuhängen:
Code:
KERNEL=="parport*", "NAME="%k", GROUP="lp"

Danach sollte man das Modul ppdev erneut laden und das Device
/dev/parport0 gehört root und zur Gruppe lp.

Möchte man es in einer anderen Benutzergruppe haben ändere
man den Eintrag GROUP. Soll es nur andere Zugriffsrechte
bekommen, so sieht der Eintrag zu Beispiel so aus:

Code:
KERNEL=="parport*", "NAME="%k", MODE="666"


SCSI-Geräte
--------------

Sollte inzwischen automagisch funktionieren. Auch hier gilt
zunächst mal den "Dienst" /etc/init.d/sane-dev zu überprüfen.
Weiteres hierzu siehe unter USB-Geräte.

Weitere Hinweise bzgl. SCSI-Geräten sind hier zu finden.
 

kohlhz

Member
... wäre ja schön, wenn die Berechtigung eingerichtet würde, aber unter SuSE10.0 wird für meinen neu eingerichteten SCSI-Scanmaker nur root als berechtigt angesehen.

Und ich sehe mit Grimm, daß mein Normaluser nicht scannen darf, dafür erhalte ich beim Start unter root eine zwar schöne, leider aber nicht weiterführende und somit nutzlose Belehrung, wie gefährlich dies sei.
 

Phoenix66

Member
ich möchte hier die Ausführungen des Scannerfreak noch berichtigen.
der oben angegebene Pfad: /etc/dev/rules ergibt über die Konsole aufgerufen
"NICHTS", da es den Ordner "dev" unter /etc/ garnicht gibt. Unter /etc/ sind bei mir nur die Ordner /etc/sane.d/ und der Ordner /etc/udev/ vorhanden, wo man
auch den Unterordner /rules.d/ finden kann. Die oben angeführten Scriptbefehle in der Konsole laufen bei mir alle ins Leere und ich ahne auch, warum. Auf den Befehl: /lsusb/ werden bei mir 3 erkannte Geräte angezeigt,
von denen nur der Drucker mit Ersatztreiber konfiguriert ist. Da es leider keinen Linuxtreiber für mein Gerät gibt, habe ich mir auch Ersatz besorgt,
aber diese Datei ist eine TAR.gz-Datei und kein rpm-Paket und deshalb konnte ich diese noch nicht dorthin befördern, wo sie hin soll. Zugriffs-und Schreibrechte sind freigeschaltet durch die Installation des NFS-Servers.
Nun suche ich noch Tipps und Hinweise, wie ich an mein Ziel, den Scanner zum Arbeiten zubewegen, komme. Wenn mir keiner helfen kann, so muß ich weiterhin alle Infos und Beiträge verfolgen, die neu geschrieben werden.
Mit den SANE-rpm-Paketen habe ich auch schon getestet, aber ohne Erfolg.

Gruß Phoenix66
 

Phoenix66

Member
Geier0815 schrieb:
http://wiki.linux-club.de/CheckInstall ist der Geheimtip um aus Sourcecodepaketen rpms zu erstellen.

@Geier0815,

danke für deinen bekannten Hinweis. Leider bin ich erst seit Anfang Oktober
Opensuseuser und muß mich erstmal mit dem System besser vertraut machen. An diese Aktionen traue ich mich noch nicht heran. Vielleicht bekomme ich andere Hinweise zur Installation des markenbezogenen, aber
Modell unabhängigen, Entwicklerkits. Vor allem brauche ich den Systemordnerpfad, von wo der Zugriff auf die Hardware erfolgt. Sonst sagt mir die Konsole, wie so oft, Datei oder Verzeichnis nicht gefunden. Aus verschiedenen Gründen funktioniert die Befehlseingabe in der Konsole nicht.
Entweder wurde der Befehl nicht verstanden oder die gesuchten Dateien waren nicht dort, wo sie sein sollten.

Gruß ein weitersuchender Phoenix66

P.S. Ich vergaß noch hinzu zufügen, daß ich kein PC-Experte oder Programmierer bin und keine Scriptbefehle selbst erstellen kann.
 

dduck313

Newbie
Hallo,
nachdem ich mich lange Zeit geärgert habe, möchte ich hier meinen Lösungansatz kundtun: :irre:
Meinen SCSI-Scanner (HP 4c) habe ich mit YAST eingerichtet und ist in der Datei /dev/sg3 eingebunden. Man kann unter YAST einen Probescan laufen lassen und damit sicher gehen, dass SCSI-Karte und Scanner im System richtig erkannt und eingerichtet sind. Problem mit XSane ist, dass die Datei /dev/sg3 den Besitzer root/disk hat. Dadurch kann XSane nicht drauf zugreifen. Ändert man mit root-Rechten den Besitzer der Datei sg3 z.B. auf <name>/users, funktioniert der Zugriff; leider nur bis zum nächsten Neustart, bei dem das System die alten Besitzer wieder herstellt. :/

Die Lösung ging wie folgt in 2 Schritten:

1.: In YAST das Modul Benutzer öffnen und den/die Benutzer zusätzlich als Mitglied der Gruppe 'disk' eintragen.

2.: Einen Texteditor mit root-Rechten starten und die Datei /etc/udev/rules.d/50-udev.rules öffnen. Dort den Eintrag 'KERNEL=="sg*",...,MODE="600" suchen. Es kann z.B. auch 'MODE='640' drin stehen. Diese Zahl in '660' ändern, also MODE=660" . Dann die Datei abspeichern; die alte Version der Datei wird dabei als Sicherungsdatei angelegt.

Vielleicht kann jemand diese Modifikation noch entsprechend kommentieren bzw. verallgemeinern, damit das bei ähnlichen Fällen auch eine Lösung bietet.

Gruss und viel Erfolg !
 

th.giese

Hacker
Hallo,

bei der Installation von OpenSuse 11.4 mussten ich und einige andere User feststellen, dass es Probleme mit der Rechtevergabe bei SCSI-Scannern gibt. Scannen war nur als Root mögliche normale Usere hatten keine Rechte.
Nachdem ich nun ein wenig gegoogelt habe bin ich über den Befehl ls -l /dev/sg* darauf aufmerksam geworden, dass alle SCSI-Geräte entweder der Gruppe "disk" oder "cdrom" zugewiesen waren. Lediglich sg11, welches meinem Scanner zugewiesen ist, war Gruppe "root"
Ich habe dann einfach die ID des Scanners verändert und siehe da, nach dem Reboot war sg11 in der Gruppe "lp" Alle User der Mitglied in der Gruppe "lp" sind können nun problemlos scannen.
 
Oben