La differenza tra sudo e gksu è uguale alla differenza tra sudo -i e sudo -s?


26

La differenza tra sudo cmde è gksu cmduguale alla differenza
tra l'avvio di una shell con sudo -ie sudo -s?

... o in altri termini,
è sudo cmd uguale sudo -i cmd
e gksu cmduguale a sudo -s cmd?

EDIT: basato su ciò che ho letto su una pagina della documentazione di Ubuntu in cui si dice:

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

L ' "AFAICT" non mi dà davvero piena fiducia che non ci sia altro.


(..a AGGIORNAMENTO tardivo : ho testato il suo commemnt oggi (2 mesi dopo) su:
"Questo impedisce che i file nella tua home directory diventino di proprietà di root."
Tutti i file che ho creato tramite sudo / gksu erano tutti di proprietà di " root ", e il gruppo era " root ".)


Ho letto parti di info sudoe ho notato -ie -s sembra che stia facendo la stessa cosa del problema di ambiente AFAICT ...
ma ho riscontrato un sovraccarico ... quindi ho posto la mia domanda qui.

PS .. La mia domanda non è su sudo vs gksu
.. È più su: gksu è lo stesso di sudo -s
.. e se no, in cosa differiscono?

Risposte:


16

gksuè fondamentalmente un frontend grafico per sudo che consente di eseguire comandi grafici senza la necessità di eseguire un emulatore di terminale X e di usare direttamente su. È effettivamente solo una skin GTK + per i comandi del superutente.

Quindi, se si desidera eseguire un programma basato sulla GUI come root, è necessario invocarlo con gksu cmd, anziché sudo cmd, che viene utilizzato per richiamare i programmi della console come root.


1
Non so cosa potresti voler dire con un graphicalfrontend ... un'app GTK funziona abbastanza felicemente indipendentemente dal fatto che sia avviata tramite sudo o gksu ... ma esegue il programma in un ambiente diverso ... (I ' Aggiungerò altro alla mia domanda per sottolineare perché ho posto la domanda ...
Peter.O

2
Ho finalmente capito cosa intendi con a graphical frontend. Uso sempre il terminale per eseguire sudo / gksu ... ma nello spirito della forza bruta provando tutto quello che mi viene in mente, ho provato a correre sudoe gksuvia Alt + F2 ... Bingo! .. è sudoscomparso nel vuoto, ma è gksusalito all'occasione e mi ha presentato il (leggendario) graphical forntend... È la stessa finestra di dialogo che appare per Synaptic Package Manager ecc ...
Peter.O

PS .. Ho appena provato gksu in un nuovo terminale .. La finestra di dialogo della password si apre anche lì ... Devo averlo visto prima ma associato alla password (solo), e non al fatto che fosse una finestra di dialogo della GUI un comando del Terminale ... ("Capisco". disse il cieco :) ... Grazie ...
Peter.O

. seguendo ulteriormente, spronato dalla tua risposta, sembra che gksucambi la cartella XAUTHORITY, e sudonon ... Non sono sicuro di cosa si tratti, ma sembra significativo! ... Questo ha risolto il mio dilema ... (dettagli nella mia risposta di seguito)
Peter.O

10

sudo -ireimposta l'ambiente di accesso all'utente di destinazione ( root , in questo caso). Principalmente, è che la HOMEvariabile di ambiente è cambiata, il che significa che l'utente di destinazione ~/.bashrcè caricato.

gksuè, quindi, come sudo -iin questo è switch $HOMEper l' utente root .


Grazie KC .. Sta iniziando a dare un senso a me (lentamente, lentamente) ... ma sembra chiaro che gksu, creando una copia di XAUTHORITY, e lavorando da (?), Mette gksu in una categoria piuttosto separata nessuna delle sudovarianti a cui ho fatto riferimento ... e rendersi conto che questo è stato l' Aha! momento per me ... Il risultato è: usa gksu per le app della GUI! .. ma mi rimane ancora un altro dilemma irrisolto ... gksu si applica solo alle app GTK o è perfettamente corretto usare gksu quando si esegue un'app GUI di KDE ?
Peter,

5

Questa non è davvero una risposta, ma potrebbe essere di qualche interesse ...
Sto iniziando a farmi un'idea di ciò che accade con questi comandi su,
ma non sono ancora del tutto lì ... lo uso gksu. .. Questo è più un percorso di comprensione per me ... e io wan't di capire se gksuè valida per konsoleo kate, o deve utilizzare la variante di KDE kdesu..

Ecco alcuni risultati di alcuni test che ho appena provato.

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

Questi risultati non concordano con la Pagina della documentazione di Ubuntu , dove si dice:

 This prevents files in your home directory becoming owned by root

AGGIORNAMENTO: Le envvariabili XAUTHORITY per i terminali sudo e gksu invocati sono diverse (come menzionato nella pagina della documentazione di 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   

Ciò dimostra che gksusicuramente non è lo stesso del sudo -scomando a cui ho fatto riferimento nella domanda ... e quindi risponde alla mia domanda originale (in qualche modo ancora oscuro) ... e la risposta di Chris sicuramente mi ha fatto riflettere intensamente su questo! ... ho bisogno di un caffè !!


3

sudo è per le app della riga di comando, gksu / gksudo per quelle grafiche


Grazie, la mia domanda potrebbe non essere chiara come la mia comprensione originale del problema ... Stavo principalmente cercando di scoprire qual era la differenza specifica che ha reso necessario avere entrambi i comandi .. Sembra che la differenza principale sia nel il modo in cui gksufunziona da una copia temporanea di XAUTHORITY .. Non sono chiaro i dettagli del perché XAUTHORITY debba essere gestito in modo speciale, ma è una cosa importante che distingue il suo comportamento dasudo
Peter.O
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.