Ich habe eine GUI-Anwendung, die einen (in Python geschriebenen) Daemon mit Superuser-Rechten aufrufen muss. Ich möchte dies tun, ohne den Benutzer zur Eingabe eines Passworts aufzufordern.
Da der Daemon ein Skript ist, kann ich das SUID-Bit nicht direkt setzen. Ich könnte einen C-Wrapper dafür schreiben, aber ich würde das Rad lieber nicht neu erfinden, besonders wenn ein Fehler meinerseits dazu führen könnte, dass die Sicherheit des Systems stark beeinträchtigt wird.
Normalerweise würde ich in dieser Situation eine Zeile hinzufügen, in /etc/sudoers
der Benutzer den Dämon als root ohne Kennwort ausführen können, wobei die NOPASSWD-Direktive verwendet wird. Dies funktioniert problemlos über die Befehlszeile. Wenn ich dies jedoch über die grafische pkexec
Benutzeroberfläche mache, wird ein Dialogfeld angezeigt, in dem Sie nach dem Kennwort des Benutzers gefragt werden. Es scheint, dass unter Ubuntu Aufrufe sudo
von der GUI irgendwie von abgefangen werden pkexec
.
Gibt es eine saubere Lösung dafür? Ich würde mich wirklich lieber nicht mit den Problemen eines Setuid-Skripts auseinandersetzen müssen.
sudo somecommand
, wird als Dialogfeld ein pkexec
Kennwortdialog angezeigt, unabhängig davon, ob eine sudoers-Richtlinie die Ausführung des Programms zulässt.