Hallo
Ich habe ein Backupscript, das beim Anschliessen einer externen USB-Festplatte über ein Udev-Script gestartet wird. Das Script erzeugt mithilfe von Zenity eine Messagebox mit der Frage, ob ein Backup auf die Platte geschrieben werden soll und führt dieses aus, wenn der Benutzer bestätigt. Das funktioniert im Moment einwandfrei, jedoch nur, wenn das Script vom angemeldeten Benutzer über sudo /usr/local/bin/backupscript aufgerufen wird. Wir es über die udev-Regel gestartet, kann die Messagebox nicht angezeigt werden.
Im Moment habe ich es folgendermassen probiert:
Im Script:
DISPLAY=:0. sudo -H -u yves zenity --question --text="Soll das Backup auf die USB-Festplatte gemacht werden?"
/etc/sudoers:
# /etc/sudoers
Defaults !lecture,tty_tickets,!fqdn
# User privilege specification
root ALL=(ALL) ALL, NOPASSWD: /usr/local/bin/backupscript
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL, NOPASSWD: /usr/local/bin/backupscript
Mit DISPLAY=:0. versuche ich sicherzustellen, dass das Script weiss, auf welches Display die Meldung aufgegeben werden muss.
Soviel ich weiss muss Zenity im Kontext des angemeldeten Benutzers ausgeführt werden, damit die Meldungen auch auf dem Bildschirm erscheint. Das versuche ich mit "sudo -H -u yves" zu erreichen. Die Einträge in Sudoers habe ich so im Internet gefunden und sie sollte die Passwortabfrage beim Ausführen des Sudo-Befehls verhindern.
Ich weiss nicht genau warum ich dazu den Pfad auf das Script angeben soll, mit dem Pfad auf das Zenity-Executable funktioniert es aber auch nicht.
Hat jemand eine Idee, was da falsch läuft oder wie ich das herausfinden könnte?