Ist der Unterschied zwischen sudo und gksu der gleiche wie der Unterschied zwischen sudo -i und sudo -s?

26

Ist der Unterschied zwischen sudo cmdund gksu cmdder gleiche wie der Unterschied
zwischen dem Starten einer Shell mit sudo -iund sudo -s?

... oder anders ausgedrückt:
Ist sudo cmd dasselbe wie sudo -i cmd
und gksu cmddasselbe wie sudo -s cmd?

BEARBEITEN: Basierend auf dem, was ich auf einer Ubuntu-Dokumentationsseite gelesen habe, auf der steht:

You should never use normal sudo to start graphical applications as root.  
You should use gksudo (kdesudo on Kubuntu) to run such programs. gksudo sets  
HOME=~root, and copies .Xauthority to a tmp directory. This prevents files  
in your home directory becoming owned by root.  
(AFAICT, this is all that's special about the environment of the started   
 process with gksudo vs. sudo).

Die "AFAICT" geben mir nicht wirklich die Gewissheit, dass nichts mehr dran ist.


(..ein verspätetes UPDATE : Ich habe sein Gedenken heute (2 Monate später) auf folgendes getestet:
"Dies verhindert, dass Dateien in Ihrem Home-Verzeichnis root gehören."
Alle über sudo / gksu erstellten Dateien gehörten " root ", und Die Gruppe war " root ".)


Ich habe Teile von gelesen info sudound festgestellt, dass -iund -s anscheinend dasselbe tun wie das AFAICT- Umgebungsproblem ...
aber ich bin überlastet. Deshalb habe ich meine Frage hier gestellt.

PS .. Meine Frage bezieht sich nicht auf sudo vs gksu
.. Es handelt sich eher um: Ist gksu dasselbe wie sudo -s
.. und wenn nicht, wie unterscheiden sie sich?

Peter.O
quelle

Antworten:

16

gksuist im Grunde ein grafisches Frontend für sudo, mit dem grafische Befehle ausgeführt werden können, ohne dass ein X-Terminal-Emulator ausgeführt und su direkt verwendet werden muss. Es ist praktisch nur ein GTK + Skin für die Superuser-Befehle.

Wenn Sie also ein GUI-basiertes Programm als root ausführen möchten, rufen Sie es mit gksu cmdstatt mit auf sudo cmd, das zum Aufrufen von Konsolenprogrammen als root verwendet wird.


quelle
1
Ich weiß nicht, was Sie mit einem graphicalFrontend meinen könnten ... eine GTK-App läuft recht gut, unabhängig davon, ob sie über sudo oder gksu gestartet wird ... aber das Programm läuft in einer anderen Umgebung ... (I ' Ich werde meiner Frage noch etwas hinzufügen, um darauf hinzuweisen, warum ich die Frage gestellt habe ...
Peter.O
2
Ich habe endlich verstanden, was du mit a meinst graphical frontend. Ich benutze immer das Terminal, um sudo / gksu zu starten ... aber im Geiste der Brute-Force versuchte ich alles, was mir einfiel, sudound versuchte es mit gksuAlt + F2 ... Bingo! .. sudoverschwand in der Leere, aber gksustieg auf die Gelegenheit und präsentierte mir die (legendäre) graphical forntend... Es ist der gleiche Dialog wie der, der für Synaptic Package Manager usw. erscheint ...
Peter.O
PS .. Ich habe gksu gerade in einem neuen Terminal ausprobiert .. Der Passwortdialog erscheint auch dort ... Ich muss ihn vorher gesehen haben, aber (nur) mit dem Passwort verknüpft und nicht mit der Tatsache, dass es ein GUI- Dialog von war ein Terminalkommando ... ("Ich
verstehe
. gksuWenn Sie Ihre Antwort weiter verfolgen , scheint sich der Ordner XAUTHORITY zu ändern, und es sudoscheint nicht so ... Ich bin mir nicht sicher, worum es geht, aber es scheint bedeutend zu sein! ... Das hat mein Dilema gelöst ... (Details in meiner Antwort unten)
Peter.O
10

sudo -iSetzt die Anmeldeumgebung auf den Zielbenutzer zurück ( in diesem Fall root ). Hauptsächlich wird die HOMEUmgebungsvariable geändert, was bedeutet, dass der Zielbenutzer ~/.bashrcgeladen wird.

gksuist also so, sudo -idass $HOMEauf den root user gewechselt wird.

Kees Cook
quelle
Danke KC. Es macht für mich langsam Sinn, aber es scheint klar zu sein, dass gksu, indem es eine Kopie von XAUTHORITY erstellt und von dort aus (?) Arbeitet, gksu in eine ziemlich separate Form bringt Jede der sudoVarianten, auf die ich mich bezogen habe ... und dies zu realisieren, war das Aha! Moment für mich ... Das Fazit ist: Benutze gksu für GUI-Apps! .. aber ich habe noch ein ungelöstes Problem ... Gilt gksu nur für GTK- Apps oder ist es vollkommen in Ordnung, gksu zu verwenden, wenn eine KDE- GUI-App ausgeführt wird?
Peter.O
5

Dies ist keine wirkliche Antwort, kann aber von Interesse sein ...
Ich beginne eine Vorstellung davon zu bekommen, was mit diesen su-Befehlen vor sich geht,
aber ich bin noch nicht ganz da ... Ich verwende gksu. .. das ist mehr eine Reise für mich zu verstehen ... und ich wan't zu verstehen , wenn gksufür gültig ist konsoleoder kate, oder muss ich die KDE - Variante verwenden kdesu..

Hier sind einige Ergebnisse einiger Tests, die ich gerade ausprobiert habe.

From user fred's terminal, launch gnome-terminal

su style   resulting            custom   (ls)   new file
command    prompt               prompt   home   ownership
---------  -------------------- -------  -----  ----------
sudo      .root@DT:~#           fred's   fred   root
gksu       root@DT:/home/fred#  root's   fred   root
sudo -i    root@DT:~#           root's   root   root
sudo -s   .root@DT:~#           fred's   fred   root

Diese Ergebnisse stimmen nicht mit der Ubuntu-Dokumentationsseite überein , auf der steht:

 This prevents files in your home directory becoming owned by root

UPDATE: Die XAUTHORITY- envVariablen für die aufgerufenen Terminals sudo und gksu unterscheiden sich (wie auf der Ubuntu-Dokumentationsseite erwähnt ).

sudo    #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -i #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
sudo -s #### XAUTHORITY=/var/run/gdm/auth-for-fred-RsngLK/database
gksu    #### XAUTHORITY=/tmp/libgksu-xR2OGn/.Xauthority   

Dies zeigt, dass dies gksudefinitiv nicht dasselbe ist wie der sudo -sBefehl, auf den ich mich in der Frage bezog ... und daher meine ursprüngliche Frage (auf eine noch immer undurchsichtige Weise) beantwortet ... und Chris 'Antwort hat mich sicherlich dazu gebracht, über diese Frage nachzudenken! ... Ich brauche einen Kaffee!!

Peter.O
quelle
3

sudo ist für Befehlszeilenanwendungen, gksu / gksudo für grafische Anwendungen

karthick87
quelle
Vielen Dank, meine Frage war vielleicht so unklar wie mein ursprüngliches Verständnis des Problems ... Ich habe in erster Linie versucht herauszufinden, worin der spezifische Unterschied bestand, der es erforderlich machte, beide Kommandos zu haben gksuWie das von einer temporären Kopie von XAUTHORITY funktioniert. Ich weiß nicht genau, warum XAUTHORITY speziell behandelt werden muss, aber es ist eine wichtige Sache, die sein Verhalten vonsudo
Peter.O