sudo vs gksudo. Unterschied?

37

Was ist der Unterschied zwischen sudound gksudo?

oneat
quelle
1
Gute Frage. Ich lerne jetzt Linux (Sie können sehen, dass ich mein Tastaturlayout noch nicht gefunden habe) Haha!
r0ca

Antworten:

27

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

Ignacio Vazquez-Abrams
quelle
6
gksu (do) hat auch eine eigene Konfiguration der Umgebungsvariablen, die an das untergeordnete Element übergeben werden sollen, und zwar unabhängig von der Konfiguration von su (do). Wenn Ihre sudoers-Konfiguration beispielsweise! Keep_env angibt, kann das Fehlen von $ DISPLAY die Ausführung grafischer Anwendungen verhindern, aber gksudo sollte funktionieren. Sie finden einige Details unter git.debian.org/?p=users/kov/gksu-polkit.git;a=blob;f=common/… oder live.gnome.org/gksu .
Ephemient
@ephemient Ist also neben der grafischen Eingabeaufforderung sudo -Egleichbedeutend mit gksudo?
Isomorphismen
3
die Antwort unten scheint weit überlegen superuser.com/a/726249/112542
johny warum
4
Ich möchte betonen, dass dies überhaupt nicht der entscheidende Unterschied ist, und diese Antwort ist für Neulinge ziemlich irreführend. Der Hauptunterschied wird hier erklärt: askubuntu.com/a/11766/81034 und die Antwort unten (die mit @johnywhy verknüpft ist) geht einen Schritt darüber hinaus, um dem etwas Nuance hinzuzufügen. Bitte lesen Sie die askubuntu-Frage, anstatt sich auf diese irreführende Antwort zu verlassen.
Sundar - Wiedereinsetzung von Monica
31

gksudoist 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 sudoso 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):

  1. Obwohl beide Befehle tatsächlich repräsentativ sind sudo, ist die verwendete Benutzeroberfläche NICHT der einzige Unterschied zwischen den beiden Befehlen.
  2. 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 bestimmen können, ob der Befehl Dateien in Ihr Home - Verzeichnis erstellt / schreibt (auf das die HOMEUmgebungsvariable im Verzeichnis verweist) sudoBefehl 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.
  3. Sie kann immer noch verwendet sudoBefehl 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>
      • (ab sudoHandbuchseite von Abschnitt 8) Die -H ( HOME )Option fordert, dass die Sicherheitsrichtlinie die HOMEUmgebungsvariable auf das Basisverzeichnis des Zielbenutzers (standardmäßig root) setzt, wie in der Kennwortdatenbank angegeben. Abhängig von der Richtlinie kann dies das Standardverhalten sein.
      • Dies sollte zumindest verhindern, dass Dateien im sudoAusgangsverzeichnis des Anrufers erstellt werden
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Dadurch sollte <GUI-Programm> in einem TTY-Terminal ausgeführt und in Ihrer Desktop-Umgebung angezeigt werden
  4. Das Verhalten des sudoBefehls ist nicht auf allen Systemen identisch und kann über den visudoBefehl konfiguriert werden. sudoers(5)Weitere Informationen finden Sie auf der Manpage.
Vdragon
quelle
2
scheint eine viel bessere Erklärung zu sein als die, die alle Stimmen bekommt. gründlicher, korrekter. Sogar das OP antwortete: "Ist das alles?" auf die Antwort, die alle Stimmen bekam.
Johny, warum
2

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.

Davros
quelle
2

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.

Logik
quelle
0

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). "

eugene1832
quelle
2
Es gibt vier weitere Antworten. welches ist falsch? Ist Ihre Antwort nicht im Wesentlichen dieselbe wie die von Davros?
Fixer1234
Ich bezog mich auf die Antwort, die als richtig markiert wurde. Ja, Davros sagt dasselbe, aber ich fügte dies hinzu, weil er keinen Link zu einer Quelle enthielt.
Eugene1832
1
Eine bessere Lösung wäre, eine Änderung dieser Antwort vorzuschlagen. Das Verbessern einer Antwort wird wahrscheinlich akzeptiert (+2 Wiederholungen), während das Duplizieren einer Antwort im Wesentlichen Downvotes anzieht.
Fixer1234