Die Konfiguration in /etc/scanbd und /etc/sane.d ist unverändert. In der /etc/scanbd/scanbd.conf sind user und group auf meinen User gesetzt. Für die action scan ist ein Script in meinem home-Verzeichnis hinterlegt. So hat es mit 25.10 noch funktioniert - ein Druck auf den Scanbutton am Fujitsu ScanSnap ix500, und das Script hat einen Scan ausgelöst. Seit dem upgrade reagiert der Button nicht mehr. Ich habe den Dienst mit
sudo systemctl stop scanbd
gestoppt und im debug-Modus manuell gestartet:
SANE_CONFIG_DIR=/etc/scanbd scanbd -f -d7
Folgendes wird geloggt:
scanbd: get_sane_option_value scanbd: setting env: SCANBD_FUNCTION=1 scanbd: setting env: PATH=/home/martin/.local/bin:/home/martin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/martin/.dotnet/tools scanbd: setting env: PWD=/home/martin scanbd: setting env: USER=martin scanbd: setting env: HOME=/home/martin scanbd: setting env: SCANBD_DEVICE=fujitsu:ScanSnap iX500:1559390 scanbd: setting env: SCANBD_ACTION=scan scanbd: append string fujitsu:ScanSnap iX500:1559390 to signal scan_begin scanbd: now sending signal scan_begin scanbd: append string SCANBD_FUNCTION_MODE=Lineart to signal trigger scanbd: append string SCANBD_FUNCTION=1 to signal trigger scanbd: append string PATH=/home/martin/.local/bin:/home/martin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/martin/.dotnet/tools to signal trigger scanbd: append string PWD=/home/martin to signal trigger scanbd: append string USER=martin to signal trigger scanbd: append string HOME=/home/martin to signal trigger scanbd: append string SCANBD_DEVICE=fujitsu:ScanSnap iX500:1559390 to signal trigger scanbd: append string SCANBD_ACTION=scan to signal trigger scanbd: now sending signal trigger scanbd: now flushing the dbus scanbd: unref the signal scanbd: using absolute script path: /home/martin/scan.sh scanbd: waiting for child: /home/martin/scan.sh scanbd: Can't seteuid root: Operation not permitted scanbd: child /home/martin/scan.sh exited with status: 1 scanbd: append string fujitsu:ScanSnap iX500:1559390 to signal scan_end
Das entscheidende ist wohl scanbd: Can't seteuid root: Operation not permitted. Ich habe versucht,User + group auf root zu ändern oder die Standardwerte saned/scanner zu nehmen. Leider genau das gleiche. Ich fand Bugreports, wonach in /lib/udev/rules.d/99-saned.rules die group von saned auf scanner zu ändern. Hat leider auch nichts gebracht, und ich weiß auch nicht, wie es in der funktionierenden Version 25.10 aussah. Mein User ist in den Gruppen scanner und saned enthalten.
Wenn ich ~./scan.sh unter meinem User manuell ausführe, klappt der Scan.
Wenn ich sudo SANE_CONFIG_DIR=/etc/scanbd scanbd -f -d7
aufrufe, funktioniert es. Egal ob als User oder als root gestartet, wird jeweils
scanbd: reading config file /etc/scanbd/scanbd.conf scanbd: debug on: level: 7 scanbd: dropping privs to uid martin scanbd: dropping privs to gid martin scanbd: drop privileges to gid: 1000 scanbd: Running as effective gid 1000 scanbd: drop privileges to uid: 1000 scanbd: Running as effective uid 1000
geloggt. Der einzige Unterschied den ich sehe ist, dass bei manueller Ausführung von scanbd als root dies für das Ausführen des Scriptes geloggt wird:
scanbd: using absolute script path: /home/martin/scan.sh scanbd: waiting for child: /home/martin/scan.sh scanbd: setgid to gid=1000 scanbd: setuid to uid=1000 scanbd: exec for /home/martin/scan.sh scanbd: octal mode for /home/martin/scan.sh: 100755 scanbd: file uid: 1000, file gid: 1000
Warum kann scanbd das unter meinem User und group laufende Script nur als root ausführen? Nächste Frage wäre dann, unter welchem User scanbd eigentlich ausgeführt wird, wenn es über systemd gestartet wird.
martin@martin-desktop:~$ sudo systemctl status scanbd
● scanbd.service - LSB: Scanner button events daemon
Loaded: loaded (/etc/init.d/scanbd; generated)
Active: active (exited) since Sat 2026-05-02 15:51:39 CEST; 6min ago
Invocation: aa2526b063a44ecdbb6cf14d749b7e02
Docs: man:systemd-sysv-generator(8)
Process: 28815 ExecStart=/etc/init.d/scanbd start (code=exited, status=0/SUCCESS)
Mem peak: 2.2M
CPU: 15ms
Bedeutet exited, dass der Dienst gar nicht läuft? ps aux |grep scanbd zeigt auch keinen laufenden Prozess an. Aber wieso ist anhand des Logs
Mai 02 15:51:39 martin-desktop systemd[1]: Starting scanbd.service - LSB: Scanner button events daemon... Mai 02 15:51:39 martin-desktop scanbd[28815]: * /etc/sane.d/net.conf should contain a value for connect_timeout Mai 02 15:51:39 martin-desktop scanbd[28815]: * /etc/sane.d/dll.conf should contain only the net backend Mai 02 15:51:39 martin-desktop systemd[1]: Started scanbd.service - LSB: Scanner button events daemon
kein Abbruch erkennbar? Die beiden Zeilen sind doch nur Hinweise - es heißt ja "should" und nicht "must"