Antworten:
sudo
fragt in der Befehlszeile nach dem Kennwort und gksudo
öffnet ein Dialogfeld dafür.
sudo -E
gleichbedeutend mit gksudo
?
gksudo
ist ein GTK-basiertes Frontend von sudo
(BTW,kdesudo
ist ein Qt-basiertes Front - End), aber es ist (Vorgabe) Griffe mehr Umgebungsvariablen ( HOME
, XAUTHORITY
, etc.) als sudo
so ausgeführt Befehle als Root sicherer zu machen.
Soweit ich sehen kann, ist nur die Antwort von @Logics richtig genug (@Ignacio Vazquez-Abrams ist nicht vollständig). Hier ist der Versuch, eine Klärung zu vermeiden, um @Davros @knitti Antwort / Kommentare (Bitte entfernen / bearbeiten Sie sie, wenn es nicht benötigt wird):
sudo
, ist die verwendete Benutzeroberfläche NICHT der einzige Unterschied zwischen den beiden Befehlen. HOME
Umgebungsvariable im Verzeichnis verweist) sudo
Befehl in einigen Systemen und Situationen). Nicht alle GUI-Apps schreiben in Ihr Home-Verzeichnis und nicht alle CLI-Apps schreiben in Ihr Home-Verzeichnis. Daher ist der Befehlstyp nicht der entscheidende Punkt. sudo
Befehl zum Start GUI - Anwendungen als root (für Apps' Konsolenausgabe als Beispiel sehen), jedoch müssen Sie Griff HOME
(und andere, wie XAUTHORITY
, DISPLAY
, Input-Methode-related-Material, etc.) Umgebungsvariablen richtig so dass die gestartete App nicht versagt, ihre Funktionalität verliert oder wirklich schlechte Sachen macht. Das Folgende ist meine aktuelle Empfehlung für die Verwendungsudo
sudo -H <rest of the command>
sudo
Handbuchseite von Abschnitt 8) Die -H ( HOME )
Option fordert, dass die Sicherheitsrichtlinie die HOME
Umgebungsvariable auf das Basisverzeichnis des Zielbenutzers (standardmäßig root) setzt, wie in der Kennwortdatenbank angegeben. Abhängig von der Richtlinie kann dies das Standardverhalten sein.sudo
Ausgangsverzeichnis des Anrufers erstellt werdensudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
sudo
Befehls ist nicht auf allen Systemen identisch und kann über den visudo
Befehl konfiguriert werden. sudoers(5)
Weitere Informationen finden Sie auf der Manpage.Die Verwendung von regulärem Sudo zum Ausführen von Grafikprogrammen führt in seltenen Fällen zu einer Verfälschung der Berechtigungen für einige Dateien. Aus Sicherheitsgründen sollte gksudo (oder gegebenenfalls kdesudo) zum Ausführen von Programmen mit einer GUI verwendet werden. Ich denke, das ist wirklich ein Fehler, obwohl ich Erklärungen gehört habe, dass gksudo X-Servervariablen versteht und sudo möglicherweise nicht zu Problemen führt. Nur als Tipp; Wenn Sie grafische Programme als root ausführen, geben Sie ALT-F2 (Alt und Funktionstaste 2 gleichzeitig) ein, anstatt ein Terminal für jedes Programm zu öffnen, das Sie ausführen möchten, und geben Sie dann in das Dialogfeld "gksudo" ein Programm "ohne die Anführungszeichen und das Programm, das durch die Anwendung ersetzt wurde, die Sie ausführen möchten.
sudo wird als aktueller Benutzer mit erhöhten Rechten ausgeführt. Dies hat das Potenzial, die Dateiberechtigungen bestimmter Benutzerkonfigurationsdateien (in Bezug auf Ihre grafische Umgebung) zu ändern, wenn grafische Apps ausgeführt werden. Möglicherweise treten Fehler auf, wenn Sie diese Apps erneut ohne sudo ausführen.
gksudo (kdesudo unter KDE) führt die Apps als Root-Benutzer aus, sodass alle betroffenen Dateiberechtigungen für Root-Dateien gelten und nicht für die Benutzerdateien. Wenn Sie diese Apps ohne gksudo / kdesudo erneut ausführen, wird immer das erwartete Verhalten erzielt.
Die aktuelle Antwort ist falsch. Laut dem Ubuntu RootSudo Wiki :
"Sie sollten niemals normales sudo verwenden, um grafische Anwendungen als root zu starten. Sie sollten gksudo (kdesudo auf Kubuntu) verwenden, um solche Programme auszuführen. Gksudo setzt HOME = ~ root und kopiert .Xauthority in ein tmp-Verzeichnis. Dadurch werden Dateien in Ihrem home verhindert Verzeichnis wird Eigentum von root (AFAICT, das ist alles, was das Besondere an der Umgebung des gestarteten Prozesses mit gksudo vs. sudo ist). "