Ich habe ein Bash-Skript erstellt, das kdialog ausschließlich für die Interaktion mit dem Benutzer verwendet. Es wird aus einer ".desktop" -Datei gestartet, sodass der Benutzer das Terminal nie sieht. Es sieht zu 100% aus wie eine GUI-App (obwohl es sich nur um ein Bash-Skript handelt). Es läuft nur in KDE (Kubuntu 12.04).
Mein einziges Problem ist die sichere und bequeme Eingabe von Passwörtern . Ich kann keine zufriedenstellende Lösung finden.
Das Skript wurde entwickelt , um als normaler Benutzer ausgeführt zu werden und um das Kennwort einzugeben, wenn ein sudo-Befehl zum ersten Mal benötigt wird. Auf diese Weise werden die meisten Befehle, für die keine Sudo-Rechte erforderlich sind, als normaler Benutzer ausgeführt. Was passiert (wenn das Skript vom Terminal ausgeführt wird), ist, dass der Benutzer einmal zur Eingabe seines Kennworts aufgefordert wird und das Standard-Sudo-Timeout das Beenden des Skripts einschließlich aller zusätzlichen Sudo-Befehle ermöglicht, ohne den Benutzer erneut dazu aufzufordern. So soll es auch funktionieren, wenn es hinter der GUI ausgeführt wird.
Das Hauptproblem besteht darin, dass kdesudo
das Starten meines Skripts, das die Standard-GUI-Methode ist, bedeutet, dass das gesamte Skript vom Root-Benutzer ausgeführt wird. Daher werden dem Root-Benutzer Dateieigentümer zugewiesen, auf die ich mich ~/
in Pfaden nicht verlassen kann , und viele andere Dinge sind nicht ideal. Das Ausführen des gesamten Skripts als Root-Benutzer ist nur eine sehr unbefriedigende Lösung, und ich denke, es ist eine schlechte Praxis.
Ich freue mich über Ideen, wie ein Benutzer das sudo-Passwort nur einmal über die GUI eingeben kann, ohne das gesamte Skript als root auszuführen. Vielen Dank.