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?
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.
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.
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é!!
Sudo est destiné aux applications en ligne de commande, gksu/gksudo aux applications graphiques.