sudo vs gksudo. unterschied?

Was ist der Unterschied zwischen sudo und gksudo?

 37
Author: Andrea, 2010-10-23

5 answers

sudo fragt in der Befehlszeile nach dem Kennwort und gksudo öffnet ein Dialogfeld dafür.

 27
Author: Ignacio Vazquez-Abrams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-23 17:24:07

gksudo ist ein GTK-basiertes Frontend von sudo (übrigens ist kdesudo ein Qt-basiertes Frontend), behandelt jedoch (standardmäßig) mehr Umgebungsvariablen(HOME, XAUTHORITY, etc.) als sudo, wodurch die Ausführung von Befehlen als root sicherer zu machen.


Soweit ich sehen kann, ist nur die Antwort von @Logics korrekt genug (@Ignacio Vazquez-Abrams ist nicht vollständig). Hier ist die Try-to-Avoid-Klarstellung zu @Davros @knitti Antwort / Kommentare (Bitte entfernen/bearbeiten Sie sie, wenn sie nicht benötigt werden):

  1. Obwohl beide Befehle tatsächlich sudo darstellen, ist die verwendete Benutzeroberfläche NICHT der einzige Unterschied der beiden Befehle.
  2. Das Ausführen des GUI-Programms ist NICHT die einzige Situation, in der Sie gk/kdesudo verwenden sollten, stattdessen sollten Sie gk/kdesudo verwenden, wenn Sie nicht feststellen können, ob der Befehl Dateien in Ihr Home-Verzeichnis erstellt/schreibt (auf die die Umgebungsvariable HOME im Befehl sudo in einigen Systemen und Situationen zeigt). Nicht alle GUI-Apps schreiben auf Ihre home directory und nicht alle CLI-Apps nicht, daher ist der Befehlstyp nicht der Schlüsselpunkt.
  3. Sie noch kann verwenden Sie den Befehl sudo, um GUI-Apps als root zu starten (zum Anzeigen der Konsolenausgabe von Apps als Beispiel), Sie müssen jedoch HOME (und andere wie XAUTHORITY, DISPLAY, input-method-related-stuff usw.) Umgebungsvariablen korrekt, damit die gestartete App nicht fehlschlägt, die Funktionalität verliert oder wirklich schlechte Sachen macht. Folgendes ist meine aktuelle Empfehlung für die Verwendung von sudo
    • sudo -H <rest of the command>
      • (von sudo Abschnitt 8 Manualseite) Die Option -H ( HOME ) verlangt, dass die Sicherheitsrichtlinie die Umgebungsvariable HOME wie in der Passwortdatenbank angegeben auf das Stammverzeichnis des Zielbenutzers (standardmäßig root) setzt. Abhängig von der Richtlinie kann dies das Standardverhalten sein.
      • Dies sollte zumindest verhindern, dass Dateien erstellt, in sudo Anrufer-home-directory
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Das sollte in einem TTY-Terminal ausgeführt und in Ihrer Desktop-Umgebung angezeigt werden
  4. Das Verhalten des Befehls sudo ist nicht auf allen Systemen identisch und kann über den Befehl visudo konfiguriert werden.
 31
Author: Vdragon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-03-09 06:31:18

Die Verwendung von normalem Sudo zum Ausführen grafischer Programme führt in seltenen Fällen zu einem Durcheinander von Berechtigungen für einige Dateien. Um sicher zu gehen, sollte gksudo (oder 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, anstatt für jedes Programm, das Sie ausführen möchten, ein Terminal zu öffnen, geben Sie ALT-F2 ein (alt und Funktionstaste 2 gleichzeitig) und geben Sie dann das Dialogfeld ein, in dem "gksudo-Programm" angezeigt wird, ohne dass die Anführungszeichen und das Programm durch die Anwendung ersetzt werden, die Sie ausführen möchten.

 2
Author: Davros,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2010-10-24 06:57:00

Sudo wird als aktueller Benutzer mit erhöhten Berechtigungen ausgeführt. Dies hat das Potenzial, die Dateiberechtigungen bestimmter Benutzerkonfigurationsdateien (in Bezug auf Ihre grafische Umgebung) beim Ausführen grafischer Apps zu ändern. Möglicherweise treten Fehler auf, wenn Sie diese Apps ohne sudo erneut ausführen.

Gksudo (kdesudo unter KDE) führt die Apps als Root-Benutzer aus, sodass alle Dateiberechtigungen für Root-Dateien und nicht für Benutzerdateien gelten. wenn Sie diese Apps erneut ohne gksudo/kdesudo ausführen, haben Sie immer die erwartetes Verhalten.

 2
Author: Logics,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-01-07 21:17:40

Die aktuelle Antwort ist falsch. Nach 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 .Xauth bezieht sich auf ein tmp-Verzeichnis. Dies verhindert, dass Dateien in Ihrem Home-Verzeichnis im Besitz von root werden. (AFAICT, das ist alles, was an der Umgebung des gestarteten Prozesses mit gksudo vs. sudo besonders ist.)"

 0
Author: artis3n,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-04-17 05:42:19