web-dev-qa-db-fra.com

La différence entre Sudo et gksu est-elle identique à la différence entre Sudo -i et Sudo -s?

La différence entre Sudo cmd et gksu cmd est-elle identique à la différence?
entre le démarrage d’un shell avec Sudo -i et Sudo -s?

... ou en d'autres termes,
Est-ce que Sudo cmd est identique à Sudo -i cmd
et gksu cmd identiques à Sudo -s cmd?

EDIT: Basé sur ce que j'ai lu sur un page de documentation Ubunt où il est écrit:

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

Le "AFAICT" ne me donne pas vraiment l'assurance qu'il n'y a rien de plus.


(..a tardated UPDATE: J'ai testé son message aujourd'hui (2 mois plus tard) sur:
"Cela évite que les fichiers de votre répertoire personnel deviennent la propriété de root."
Tous les fichiers que j'ai créés avec Sudo/gksu appartenaient tous à " root " et le groupe était " root ".)


J'ai lu des parties du info Sudo et remarqué que les -i et -s semblent faire la même chose que le AFAICT problème d'environnement ...
mais je suis surchargé .. alors j'ai posé ma question ici.

PS .. Ma question ne concerne pas Sudo vs gksu
.. Il s’agit plus de: Est-ce que gksu est identique à Sudo -s
.. et si non, en quoi diffèrent-ils?

26
Peter.O

gksu est fondamentalement une interface graphique pour Sudo qui permet d’exécuter une commande graphique sans avoir besoin d’exécuter un émulateur de terminal X et d’utiliser directement su. C'est en réalité juste un skin GTK + pour les commandes de superutilisateur.

Ainsi, si vous souhaitez exécuter un programme basé sur une interface graphique en tant que root, vous devez l'invoquer avec gksu cmd, plutôt que Sudo cmd, qui est utilisé pour appeler des programmes de console en tant que root.

16
user2405

Sudo -i réinitialise l'environnement de connexion à l'utilisateur cible (root, dans ce cas). En règle générale, la variable d'environnement HOME est modifiée, ce qui signifie que le ~/.bashrc de l'utilisateur cible est chargé.

gksu est donc semblable à Sudo -i en ce qui concerne les commutateurs $HOME vers l'utilisateur racine.

10
Kees Cook

Ce n'est pas vraiment une réponse, mais cela peut être intéressant ...
Je commence à avoir une idée de ce qui se passe avec ces commandes su,
mais je ne suis pas encore au bout ... J'utilise gksu... C'est plus un voyage de compréhension pour moi ... et je ne veux pas savoir si gksu est valide pour konsole ou kate , ou must ​​J'utilise la variante de KDE kdesu ..

Voici quelques résultats de tests que je viens d'essayer.

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

Ces résultats ne concordent pas avec = Page de documentation Ubunt , où il est indiqué:

 This prevents files in your home directory becoming owned by root

MISE À JOUR: Les variables XAUTHORITY env pour les terminaux Sudo et gks invoqués sont différentes (comme indiqué sur Page de documentation 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   

Cela montre que gksu n'est certainement pas la même chose que la commande Sudo -s à laquelle j'ai fait référence dans la question ... et répond donc à ma question otiginale (d'une manière encore obscure) ... et la réponse de Chris m'a certainement amené à réfléchir sérieusement à celle-ci! ... Je veux un café!!

5
Peter.O

Sudo est destiné aux applications en ligne de commande, gksu/gksudo aux applications graphiques.

3
karthick87