gksudo
ist ein GTK-basiertes Frontend von sudo
(Übrigens, kdesudo
ist ein Qt-basiertes Frontend), verarbeitet jedoch (standardmäßig) mehr Umgebungsvariablen (HOME
). , XAUTHORITY
usw.) als sudo
Dadurch wird das Ausführen von Befehlen als root sicherer.
Soweit ich sehen kann, ist nur die Antwort von @Logic richtig genug (@Ignacio Vazquez-Abrams ist nicht vollständig). Hier ist die zu vermeidende Klarstellung zu @Davros @knitti Antworten/Kommentaren (Bitte entfernen/bearbeiten Sie sie, wenn sie nicht benötigt werden):
- Obwohl beide Befehle tatsächlich
sudo
darstellen , die verwendete Benutzeroberfläche ist NICHT der einzige Unterschied zwischen den beiden Befehlen. - Das Ausführen eines GUI-Programms ist NICHT die einzige Situation, in der Sie gk/kdesudo verwenden sollten, stattdessen sollten Sie gk/kdesudo immer dann verwenden, wenn Sie nicht feststellen können, ob der Befehl Dateien in Ihrem Home-Verzeichnis erstellen/schreiben wird (wobei der
HOME
Umgebungsvariable zeigt aufsudo
Befehl in einigen Systemen und Situationen). Nicht alle GUI-Apps schreiben in Ihr Home-Verzeichnis und nicht alle CLI-Apps , also ist die Art des Befehls nicht der entscheidende Punkt. - Du kannst es immer noch Verwenden Sie
sudo
Befehl zum Starten von GUI-Apps als Root (um beispielsweise die Konsolenausgabe von Apps anzuzeigen), Sie müssen jedoch mitHOME
umgehen (und andere wieXAUTHORITY
,DISPLAY
, Input-Method-related-Zeug usw.) Umgebungsvariablen korrekt, damit die gestartete App nicht fehlschlägt, Funktionalität verliert oder wirklich schlechte Sachen macht. Das Folgende ist meine aktuelle Empfehlung für die Verwendung vonsudo
sudo -H <rest of the command>
- (von
sudo
Abschnitt 8 Handbuchseite) Der-H ( HOME )
Option verlangt, dass die Sicherheitsrichtlinie denHOME
setzt Umgebungsvariable in das Home-Verzeichnis des Zielbenutzers (standardmäßig root) wie von der Passwortdatenbank angegeben. Je nach Richtlinie kann dies das Standardverhalten sein. - Dies sollte zumindest verhindern, dass Dateien in
sudo
erstellt werden Heimatverzeichnis des Anrufers
- (von
sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
- Dadurch sollte
in einem TTY-Terminal ausgeführt und in Ihrer Desktop-Umgebung angezeigt werden
- Dadurch sollte
- Das Verhalten von
sudo
Befehl ist nicht auf allen Systemen identisch und kann übervisudo
konfiguriert werden Befehl finden Sie untersudoers(5)
Manpage für weitere Informationen.
sudo
fragt auf der Kommandozeile nach dem Passwort und gksudo
öffnet ein Dialogfeld dafür.
Die Verwendung von regulärem sudo zum Ausführen von grafischen Programmen wird in seltenen Fällen die Berechtigungen für einige Dateien durcheinander bringen. Sicherheitshalber sollte gksudo (bzw. kdesudo) zum Ausführen von Programmen mit GUI verwendet werden. Ich denke, das ist wirklich ein Fehler, obwohl ich Erklärungen gehört habe, dass gksudo X-Server-Variablen versteht und sudo möglicherweise nicht zu Problemen führt. Nur als Tipp; Wenn Sie grafische Programme als root ausführen, geben Sie, anstatt ein Terminal für jedes auszuführende Programm zu öffnen, ALT-F2 (alt und Funktionstaste 2 gleichzeitig) ein und geben Sie dann in das Dialogfeld ein, das "gksudo program" ohne Anführungszeichen und program ersetzt durch die Anwendung, die Sie ausführen möchten.