Czy różnica między sudo i gksu jest taka sama jak różnica między sudo -i i sudo -s?

26

Czy różnica między sudo cmdi jest gksu cmdtaka sama jak różnica
między uruchomieniem powłoki za pomocą sudo -ii sudo -s?

... lub inaczej:
Czy sudo cmd to samo sudo -i cmd
i gksu cmdto samo co sudo -s cmd?

EDYCJA: Na podstawie tego, co przeczytałem na stronie dokumentacji Ubuntu, gdzie jest napisane:

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

„AFAICT” doen't naprawdę daje mi pełne zaufanie, że nie ma nic więcej do niego.


(... spóźniona AKTUALIZACJA : Dzisiaj przetestowałem jego upamiętnienie (2 miesiące później) na temat:
„To zapobiega przechodzeniu plików w twoim katalogu domowym przez root.”
Wszystkie pliki, które utworzyłem przez sudo / gksu, były własnością „ root ”, i grupa była „ root ”.)


Przeczytałem części info sudoi zauważyłem -ii -s wydaje się, że robię to samo, co problem ze środowiskiem AFAICT ...
ale uderzyłem w przeciążenie ... więc zadałem tutaj moje pytanie.

PS .. Moje pytanie nie dotyczy sudo vs. gksu
.. Chodzi raczej o: Czy gksu jest tym samym co sudo -s
.. a jeśli nie, to czym się różnią?

Peter.O
źródło

Odpowiedzi:

16

gksujest w zasadzie graficznym frontendem dla sudo, który pozwala na uruchamianie komend graficznych bez potrzeby uruchamiania emulatora terminali X i bezpośredniego używania su. W rzeczywistości jest to tylko skórka GTK + dla komend superużytkownika.

Więc jeśli chcesz uruchomić program oparty na graficznym interfejsie użytkownika jako root, wywołałbyś go za pomocą gksu cmd, zamiast sudo cmd, który jest używany do wywoływania programów konsoli jako root.


źródło
1
Nie wiem, co mógłbyś rozumieć przez graphicalinterfejs ... aplikacja GTK działa całkiem szczęśliwie, niezależnie od tego, czy została uruchomiona przez sudo czy gksu ... ale program działa w innym środowisku ... (I ' Dodam jeszcze trochę do mojego pytania, aby wskazać, dlaczego zadałem pytanie ...
Peter.O,
2
W końcu zrozumiałem, co masz na myśli graphical frontend. Zawsze używam terminala do uruchamiania sudo / gksu ... ale w duchu brutalnej siły próbuję wszystkiego, co mogę wymyślić, próbowałem biegać sudoi gksuprzez Alt + F2 ... Bingo! .. sudozniknął w pustce, ale gksuprzyszedł do okazji i przedstawił mi (legendarny) graphical forntend... To jest to samo okno dialogowe, które pojawia się dla Menedżera pakietów Synaptic itp.
Peter.O
PS .. Właśnie wypróbowałem gksu w nowym terminalu. Tam też pojawia się okno dialogowe hasła ... Musiałem go wcześniej zobaczyć, ale skojarzone z hasłem (tylko), a nie fakt, że było to okno dialogowe GUI z polecenie terminalu ... („widzę”. powiedział ślepiec :)… Dzięki…
Peter.O
. kontynuując, pod wpływem twojej odpowiedzi, wydaje się, że gksuzmienia folder XAUTHORITY i sudonie ... Nie jestem pewien, o co w tym wszystkim chodzi, ale wydaje się znaczący! ... To rozwiązało mój dylemat ... (szczegóły w mojej odpowiedzi poniżej)
Peter.O,
10

sudo -iresetuje środowisko logowania do użytkownika docelowego ( w tym przypadku root ). Przede wszystkim HOMEzmienia się zmienna środowiskowa, co oznacza, że ​​użytkownik docelowy ~/.bashrcjest ładowany.

gksujest więc, podobnie jak sudo -iw tym, przełącza $HOMEsię na użytkownika root .

Kees Cook
źródło
Dzięki KC .. To zaczyna mieć dla mnie sens (powolny, powoli) ... ale wydaje się jasne, że gksu, tworząc kopię XAUTHORITY i pracując z (?), Nadaje gksu kategorię dość osobną którykolwiek z sudowariantów, o których mówiłem ... i zdałem sobie sprawę, że to Aha! moment dla mnie ... Rezultat: użyj gksu dla aplikacji GUI! .. ale pozostał mi jeszcze jeden nierozwiązany problem ... Czy gksu ma zastosowanie tylko do aplikacji GTK , czy też używanie gksu podczas uruchamiania aplikacji KDE jest całkowicie w porządku ?
Peter.O,
5

To naprawdę nie jest odpowiedź, ale może być trochę interesująca ...
Zaczynam rozumieć, co się dzieje z tymi poleceniami su,
ale jeszcze nie jestem do końca ... Używam gksu. .. jest to bardziej podróż zrozumienia dla mnie ... a ja wa nie zrozumieć, jeśli gksujest ważna konsolelub kateczy należy używać wariant KDE kdesu..

Oto niektóre wyniki niektórych testów, które właśnie wypróbowałem.

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

Te wyniki nie zgadzają się ze stroną dokumentacji Ubuntu , gdzie jest napisane:

 This prevents files in your home directory becoming owned by root

AKTUALIZACJA: envZmienne XAUTHORITY dla wywoływanych terminali sudo i gksu są różne (jak wspomniano na stronie dokumentacji Ubuntu ).

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   

To pokazuje, że gksuzdecydowanie nie jest to samo, co sudo -spolecenie, o którym wspomniałem w pytaniu ... i dlatego odpowiada na moje pytanie otiginal (w jakiś wciąż niejasny sposób) ... a odpowiedź Chrisa z pewnością zmusiła mnie do zastanowienia się nad tym! ... Potrzebuję kawy!!

Peter.O
źródło
3

sudo jest dla aplikacji z linii poleceń, gksu / gksudo dla aplikacji graficznych

karthick87
źródło
Dzięki, moje pytanie mogło być tak niejasne, jak moje pierwotne zrozumienie problemu ... Próbowałem przede wszystkim dowiedzieć się, jaka była szczególna różnica, która sprawiła, że ​​musieliśmy mieć obu dowódców. Wygląda na to, że główna różnica polega na sposób, który gksudziała z tymczasowej kopii XAUTHORITY. Nie jestem do końca pewien, dlaczego XAUTHORITY należy traktować specjalnie, ale jest to główna rzecz, która odróżnia jego zachowaniesudo
Peter.O