# [geloest] libusb und /etc/fstab

## tzzaetaynzz

hallo an alle,

mein usb scanner wird mit der libusb adressiert.

```
scanimage -d plustek:libusb:002:002
```

habe ich die /etc/fstab angepasst, damit auch normale benutzer (nicht nur root) auf den scanner zugreifen koennen.

```
usbfs          /proc/bus/usb       usbfs    noauto,devmode=0666 0 0
```

aber ich muß nach jedem neustart 

```
mount -o remount usbfs
```

 als root absetzten, damit ein unterprivigierter benutzer mit 

```
scanimage -L 
```

 einen scanner sieht 

```
device `plustek:libusb:002:002' is a Canon LiDE25 USB flatbed scanner
```

habt ihr eine idee wo ich was eintragen muß damit mir dieser "dreischritt" abgenommen wird?

----------

## Finswimmer

Naja..

noauto heißt, dass du es manuell machen musst.

Schreib auto hin, und es geht.

Tobi

----------

## firefly

oder lass das noauto weg  :Smile: 

----------

## tzzaetaynzz

 *Finswimmer wrote:*   

> Naja..
> 
> noauto heißt, dass du es manuell machen musst.
> 
> 

 

ups   :Embarassed: 

danke fuer den hinweis.

ich schliesse diesen beitrag sofort.

----------

## tzzaetaynzz

 *firefly wrote:*   

> oder lass das noauto weg 

 

hallo firefly,

leider funktionierte es ohne noauto nicht,

aber ebenso wenig mit noauto,

oder mit auto.

```
usbfs         /proc/bus/usb       usbfs   devmode=0666 0 0
```

immer noch gebe ich ein: 

```
mount -o remount usbfs
```

hast du noch eine idee was ich machen kann?

----------

## Anarcho

War für sowas nicht der saned gedacht? 

Ich muss den benutzen weil ich übers Netzwerk scanne, aber per default ist er auf localhost eingestellt.

Dazu brauchst du aber xinetd.

Dann sollte es auch vom user gehen.

Oder du schaust mal welche Gruppe das Scanner-Device hat und fügst deinen User dieser gruppe hinzu.

Kandidaten sind scanner oder usb

Ansonsten schreib doch den remount befehl in die /etc/conf.d/local.start

----------

## tzzaetaynzz

danke fuer deine tips!

 *Anarcho wrote:*   

> War für sowas nicht der saned gedacht? 
> 
> Ich muss den benutzen weil ich übers Netzwerk scanne, aber per default ist er auf localhost eingestellt.
> 
> Dazu brauchst du aber xinetd.
> ...

 

ok, habe ich so eben versucht.

leider bekomme ich eine fehlermeldung

```
[saned@emma root]$ saned -d

[saned] main: starting debug mode (level 2)

[saned] main: [1] bind failed: Address already in use
```

ich bin mir sicher alle relevanten dateien exakt nach man saned konfiguriert zu haben.

hast du eine idee woran es liegt (ich kann keinen dienst erkennen der den port 6566 nutzt)?

in einer anleitung habe ich gefunden,

 *Quote:*   

> Bevor es mit der Netzwerkkonfiguration weiter geht, sollte der Benutzer "saned" die angeschlossenen Scanner anzeigen können.

 

http://www.linux-fuer-alle.de/doc_show.php?docid=235&catid=17

ein teufelskreis! den der benutzer ist ein einfacher,

so wie auch ich einer bin.

doch koennte er den scanner sehen, so koennte ich das selbe 

und ich muesste nicht hier so lange texte schreiben.   :Wink: 

 *Anarcho wrote:*   

> 
> 
> Oder du schaust mal welche Gruppe das Scanner-Device hat und fügst deinen User dieser gruppe hinzu.
> 
> Kandidaten sind scanner oder usb

 

gerne, nur wie mache ich das?

es gibt bei mir kein devicefile wie zum beispiel /dev/scanner.

ich habe das geraet mit libusb am laufen.

nur unter /proc/bus/usb liegen dateien,

meinst du diese dateien (mit udev kenne ich mich nicht besonders aus)?

 *Anarcho wrote:*   

> Ansonsten schreib doch den remount befehl in die /etc/conf.d/local.start

 

mach ich, um erst mal scannen zu koennen.

aber gerne wuerde ich auch ueber das netz scannen

(danke fuer den tip   :Very Happy: ).

um eine ordentliche saned konfiguration werde ich nicht herum kommen.

----------

## Anarcho

Hi!

Kann es sein das der xinetd schon läuft?

Ansonsten kannst du testen welches Programm den Port gerade offen hat:

```
netstat -lnp 2>/dev/null | grep 6566
```

Aber hier mal eine kleine Anleitung

1. emerge xinetd sane-backends

2. Anlegen der Datei /etc/xinetd.d/saned

```
service sane-port

{

        port        = 6566

        socket_type = stream

        wait        = no

        user        = saned

        group       = scanner

        server      = /usr/sbin/saned

        #server_args = saned -s128

        #only_from   = localhost YOUR.SWEET.LOCAL.NETWORK/24

        disable     = no

}
```

3. In der Datei /etc/xinetd.conf die Zeile

```
only_from      = localhost
```

anpassen oder auskommentieren

4. Der user saned muss Mitglied in der Gruppe scanner sein

5. Berechtigungen in /proc anpassen:

```
chmod +x /proc/bus && echo "chmod +x /proc/bus" >> /etc/conf.d/local.start
```

6. In der Datei /etc/sane.d/saned.conf die Netzwerke die Zugriff haben sollen eintragen

7. xinetd am server starten /etc/init.d/xinetd start

8. Auf dem Client: emerge xsane

9. Am client in die Datei /etc/sane.d/net.conf die IP-Adresse des Server eintragen

10. Am client mit scanimage -L testen ob es klappt

Das ist jetzt so aus dem Kopf geschrieben, hoffe ich habe nichts vergessen.

----------

## tzzaetaynzz

vielen dank fuer deine ausfuehrliche anleitung!!!

 *Anarcho wrote:*   

> 
> 
> Kann es sein das der xinetd schon läuft?
> 
> 

 

ja, der laeuft schon, aber ohne saned. ich habe testweise "disable" auf "yes" gesetzt.

trotzdem kein saned laueft erhalte ich diese fehlermeldung.

```
[root@emma ~]# saned -d

[saned] main: starting debug mode (level 2)

[saned] main: [1] bind failed: Address already in use
```

 *Anarcho wrote:*   

> 
> 
> Ansonsten kannst du testen welches Programm den Port gerade offen hat:
> 
> ```
> ...

 

```
[root@emma ~]# netstat -lnp 2>/dev/null | grep 6566

[root@emma ~]#
```

nichts zu sehen. 

1. erledigt

2. erledigt

3. erledigt

4. erledigt

5. erledigt

6. erledigt

7. erledigt

8. erledigt

9. erledigt

10. erledigt

kein scanner ansprechbar.

schade, aber der obere tip funktioniert erst einmal.

----------

## Anarcho

Dann teste dochmal auf dem Server ob der user saned überhaupt den Scanner findet:

```
su saned -c scanimage -L
```

Falls das nicht funktioniert dann ändere die user = saned Zeile in der /etc/xinetd.d/saned in user = root.

Hast du den xinetd daemon neu gestartet? (/etc/init.d/xinetd restart)

Was du auch noch prüfen solltest ist, das in der Datei /etc/sane.d/dll.conf der Eintrag "net" nicht auskommentiert ist.

Als nächstes würde ich per telnet am Client schauen ob der Daemon überhaupt erreichbar ist:

telnet server-ip 6566

----------

## tzzaetaynzz

 *Anarcho wrote:*   

> Dann teste dochmal auf dem Server ob der user saned überhaupt den Scanner findet:
> 
> ```
> su saned -c scanimage -L
> ```
> ...

 

erfolglos probiert.

 *Anarcho wrote:*   

> 
> 
> Falls das nicht funktioniert dann ändere die user = saned Zeile in der /etc/xinetd.d/saned in user = root.
> 
> 

 

erledigt.

 *Anarcho wrote:*   

> 
> 
> Hast du den xinetd daemon neu gestartet? (/etc/init.d/xinetd restart)
> 
> 

 

erledigt.

 *Anarcho wrote:*   

> 
> 
> Was du auch noch prüfen solltest ist, das in der Datei /etc/sane.d/dll.conf der Eintrag "net" nicht auskommentiert ist.
> 
> 

 

positiv.

 *Anarcho wrote:*   

> 
> 
> Als nächstes würde ich per telnet am Client schauen ob der Daemon überhaupt erreichbar ist:
> 
> ```
> ...

 

```
[root@emma ~]# telnet localhost 6566

Trying 127.0.0.1...

telnet: connect to address 127.0.0.1: Connection refused
```

alternativ.

```

[root@emma ~]# nmap -p 6566 localhost

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2006-02-11 19:54 CET

Interesting ports on localhost (127.0.0.1):

PORT     STATE  SERVICE

6566/tcp closed unknown
```

was auch immer auf 6566 haengt (rootkit?  :Cool:  ), es ist wohl der grund dafuer dass,

(a) der saned nicht gestartet werden kann

(b) alle anderen fehler eintreten

ich habe ein wenig gegoogelt, um herauszufinden

ob es andere dienste auf 6566 gibt die bei mir laufen koennten. nichts der gleichen.

auch wenn ich den xinetd mit saned konfiguration heruntergefahren habe,

kommt die alte fehlermeldung.

```
[root@emma ~]# saned -d

[saned] main: starting debug mode (level 2)

[saned] main: [1] bind failed: Address already in use
```

leider nichts.

----------

## Anarcho

Falls 

```
lsof -i:6566
```

 auch kein ergebnis findet, dann würde ich in einem letzten Versuch den Rechner mal neustarten. 

Irgendwas scheint ja den Port zu blockieren.

----------

## tzzaetaynzz

 *Anarcho wrote:*   

> 
> 
> ```
> lsof -i:6566
> ```
> ...

 

```
[root@emma ~]# lsof -i:6566

[root@emma ~]# 
```

 *Anarcho wrote:*   

> den Rechner mal neustarten. 

 

erledigt.

 *Anarcho wrote:*   

> Irgendwas scheint ja den Port zu blockieren.

 

ja, das dachte ich auch.

und in meinem letzten posting habe ich diesen gedanken auch noch betont

und dich und mich auf eine falsche faehrte gebracht.

ein erneutes googeln brachte dieses suchergebnis.

> - ...and found that saned doesn't start at all without debug parameters.

>    saned -d gives me:

> 

>    [saned] main: [1] bind failed: Address already in use

That's ok. I'm getting this:

hmg@hmg1:~$ /usr/local/sbin/saned -d

[saned] main: starting debug mode (level 2)

[saned] main: [1] bind failed: Address already in use

As it uses debug level 2 by default, you won't get many messages. But

it sits there and waits for connections: 

hmg@hmg1:~$ scanimage -d net:localhost:test -T

scanimage: scanning image of size 157x196 pixels at 8 bits/pixel

[...]

http://lists.alioth.debian.org/pipermail/sane-devel/2003-December/009754.html

diese "fehlermeldung" sollte ignoriert werden (was sie bedeutet ist mir unklar).

daher habe ich folgendes getestet.

```
/etc/init.d/xinetd stop
```

in der /etc/fstab die zeile 1 auskomentiert und 2 aktiviert

```
#usbfs         /proc/bus/usb       usbfs   noauto,devmode=0666 0 0

usbfs             /proc/bus/usb        usbfs   defaults    0     0
```

```
[root@emma ~]# mount -o remount usbfs

[root@emma ~]# mount

usbfs on /proc/bus/usb type usbfs (rw)

```

nun ist sichergestellt, kein (normaler) benutzer kann den scanner listen.

```
[admin@emma ~]$ scanimage  -L

No scanners were identified. If you were expecting something different,

check that the scanner is plugged in, turned on and detected by the

sane-find-scanner tool (if appropriate). Please read the documentation

which came with this software (README, FAQ, manpages).
```

nun kommt dein tip, mit dem saned.

als root (nur so funktioniert es im moment; der user saned kann es nicht, da er ein "normaler" benutzer ist)

```
[root@emma ~]# saned -d

[saned] main: starting debug mode (level 2)

[saned] main: [1] bind failed: Address already in use
```

nun ignoriere ich die "bind failed" meldung, wechsle zu admin

und lasse mir alle verfuegbaren scanner listen.

```
[admin@emma ~]$ scanimage -d net:localhost:test -L

device `net:localhost:plustek:libusb:002:002' is a Canon LiDE25 USB flatbed scanner
```

 :Very Happy:  da ist er nun.

was ich nicht wusste ist, ein "scanimage -L" funktioniert nur lokal.

will ich ueber das netzt einen scanner nutzen, muss ich 

```
net:servername:und_noch_etwas_._was_was_auch_immer_?
```

 dazu schreiben.

eigentlich fertig, aber

xinetd bekommt den saned - allem anschein nach - nicht gestartet.

meine /etc/xinetd.d/saned

```
service sane-port {

  disable     = no

  port        = 6566

  socket_type = stream

  wait        = no

  user         = root

  group       = root

  server      = /usr/sbin/saned

}
```

obwohl der xinetd gestartet ist kann ich den scanner nur als root listen.

nicht mehr als normaler benutzer.

wieder am anfang oder schon am ende?   :Very Happy: 

----------

## Anarcho

OK, das ist interessant.

Eigentlich bedeutet das Adress already in use das ein prozess den Port bereits offen hat, aber gut, dann ignorieren wir das einfach.

Am besten testest du ob der Daemon gestartet wurde mit telnet localhost 6566

Ich  habe das jetzt mal bei mir getestet und konnte vom selben Rechner auch nicht als user scannen, aber ich habe es hinbekommen:

1. in der Datei /etc/sane.d/saned.conf

Die Zeile 

127.0.0.1 

hinzufügen

2. In der Datei /etc/xinetd.conf die Zeile only_from um 127.0.0.1 ergänzen (localhost hat komischerweise nicht funktioniert) oder ganz auskommentieren

3. In der Datei /etc/xinetd.d/saned ebenfalls die Zeile only_from erweitern oder auskommentieren (s.o.)

4. In der Datei /etc/sane.d/net.conf die Zeile "localhost" eintragen

4. /etc/init.d/xinetd restart

Danach konnte ich lokal als User scannen. Danach listete auch ein normalen scanimage -L den Scanner auf.

----------

## tzzaetaynzz

guten morgen anarcho,

vielen dank fuer deine gedult.

 *Anarcho wrote:*   

> Am besten testest du ob der Daemon gestartet wurde mit telnet localhost 6566

 

```
telnet localhost 6566

Trying 127.0.0.1...

telnet: connect to address 127.0.0.1: Connection refused

```

so wie du schreibst habe ich gehandelt.

leider sehe ich keinen dienst.

 *Anarcho wrote:*   

> 4. In der Datei /etc/sane.d/net.conf die Zeile "localhost" eintragen

 

ach, hier habe ich auch 127.0.0.1 eingetragen (vorsichtshalber).

doch, deine anleitung hat mich ein stueck weiter gebracht.   :Smile: 

wenn ich wieder als root den dienst "saned" starte

```
[root@emma ~]# saned -d

[saned] main: starting debug mode (level 2)

[saned] main: [1] bind failed: Address already in use
```

kann ich als normaler benutzer mittels

```
[admin@emma ~]$ scanimage -L

device `net:127.0.0.1:plustek:libusb:002:002' is a Canon LiDE25 USB flatbed scanner
```

den scanner sehen!   :Very Happy: 

leider startet xinetd den dienst nicht.

sehr seltsam.

also, mit deiner hilfe habe ich nun eine ordentliche saned installation.

leider zickt noch der xinetd.

gibt es eine xinetd log datei;

vielleicht steht dort etwas genaueres drin?

0. ... etwas Zeit vergeht

1. tzzaetaynzz schaut nach

```
man xinetd.log
```

2. ok, sieht das eintraege von xinetd in /var/log/messages geschrieben werden

3. greift nach diesen eintraegen

```
[root@emma ~]# grep xinetd /var/log/messages

[..]

Feb 12 10:42:14 localhost xinetd[5195]: Exiting...

Feb 12 10:42:15 localhost xinetd: Herunterfahren von xinetd succeeded

Feb 12 10:42:17 localhost xinetd: Starten von xinetd succeeded

Feb 12 10:42:17 localhost xinetd[7283]: Service sane-port: missing '{' [file=/etc/xinetd.d/saned] [line=6]

Feb 12 10:42:17 localhost xinetd[7283]: xinetd Version 2.3.13 started with libwrap loadavg options compiled in.

[..]
```

4. und erschreckt sich   :Shocked:   :Question:   :Exclamation:   :Idea:   :Embarassed: 

5. aendert /etc/xinetd.d/saned

von

```
service sane-port {

  disable     = no

  port        = 6566

  socket_type = stream

  wait        = no

  user         = root

  group       = root

  server      = /usr/sbin/saned

  only_from   = 127.0.0.1

}
```

auf 

```
service sane-port 

{

  disable     = no

  port        = 6566

  socket_type = stream

  wait        = no

  user         = root

  group       = root

  server      = /usr/sbin/saned

  only_from   = 127.0.0.1

}
```

6. startet xinetd neu

7. xinetd startet saned ohne zu mekern   :Very Happy: 

8. und ein "normaler" benutzer kann   :Very Happy: 

```
[admin@emma ~]$ scanimage -L

device `net:127.0.0.1:plustek:libusb:002:002' is a Canon LiDE25 USB flatbed scanner

```

ich hoffe der fehler hat nicht schon seit gestern gestoert

und hat mehr muehen als noetig gemacht.   :Embarassed: 

auf jeden fall, danke.

fazit:

1. ich muss in der /etc/fstab _keinen eintrag_ wie diesen haben

```
usbfs          /proc/bus/usb       usbfs    noauto,devmode=0666 0 0
```

2. muss also (auch) _nicht_ "mount -o remount usbfs" in /etc/conf.d/local.start zu schreiben

habe nun eine sauber saned installation.

mein problem ist geloest.

----------

## Anarcho

Na prima!

Ich wusste aber auch nicht das das { in einer seperaten Zeile stehen muss.

Aber es war ja nicht das einzige Problem, denn vorher ging es ja mit manuellem Start von saned nicht.

Vielleicht könnte jemand den Howto-Teil in einen seperaten Thread im Dokumentationsteil vom Forum auslagern.

----------

## tzzaetaynzz

@anarcho

das howto wuerde ich anfertigen.

was mich bis jetzt davon abhaelt ist,

saned - dokumentiert - als root laufen zu lassen.

leider habe ich keine loesung um diesen zustand zu beheben.

hast du eine idee?

----------

## Finswimmer

Naja, einen Daemonen als root laufen zu lassen, ist doch normal...

Ich denke da vor allem an lircd...

Tobi

----------

## tzzaetaynzz

 *Finswimmer wrote:*   

> Naja, einen Daemonen als root laufen zu lassen, ist doch normal...
> 
> 

 

ja, es gibt einige dienste die als root laufen.

doch aus sicherheitsgruenden waere es besser saned zu nutzen.

in den dokumentationen wird auch immer eben dieser benutzer eingesetzt.

leider funktioniert es nicht bei mir.

ich glaube saned kann (wie auch alle anderen "normalen" benutzer)

nicht auf den usb bus zugreifen.

----------

