Quelle est la différence entre Sudo
et gksudo
?
Sudo
demande le mot de passe sur la ligne de commande et gksudo
fait apparaître une boîte de dialogue.
gksudo
est une interface GTK de Sudo
(BTW, kdesudo
est une interface Qt), mais elle gère (par défaut) plus de variables d'environnement (HOME
, XAUTHORITY
, etc.) que Sudo
, ce qui rend les commandes en cours d'exécution plus sûres.
Autant que je sache, seule la réponse de @Logics est correcte (la réponse de @ Ignacio Vazquez-Abrams n’est pas complète). Essayez d'éclaircir la réponse à @Davros @knitti (merci de bien vouloir les supprimer/les modifier si vous n'en avez pas besoin):
Sudo
, l'interface utilisateur utilisée N'EST PAS la seule différence entre les deux commandes.HOME
. la commande Sudo
dans certains systèmes et situations). Toutes les applications GUI n'écrivent pas dans votre répertoire personnel et toutes les applications CLI ne le font pas . Le type de commande n'est donc pas le point clé.Sudo
pour lancer les applications de l'interface graphique en tant qu'utilisateur root (pour afficher la sortie de la console des applications sous la forme exemple), vous devez cependant manipuler HOME
(et d’autres variables telles que XAUTHORITY
, DISPLAY
, input-method-related-stuff, etc.) correctement afin que l’application lancée n’échoue pas, ne perde pas de fonctionnalités ou ne fasse vraiment pas de bêtises des trucs. Ce qui suit est ma recommandation actuelle pour utiliser Sudo
Sudo -H <rest of the command>
Sudo
section 8) L'option -H ( HOME )
demande à la stratégie de sécurité de définir la variable d'environnement HOME
sur le répertoire de base de l'utilisateur cible (root par défaut), comme indiqué par la base de données de mots de passe. Selon la stratégie, il peut s'agir du comportement par défaut.Sudo
Sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
Sudo
n'est pas identique sur tous les systèmes et peut être configuré via la commande visudo
. Veuillez consulter la page de manuel sudoers(5)
pour plus d'informations.L'utilisation de Sudo pour exécuter des programmes graphiques occasionnera rarement une erreur sur les autorisations de certains fichiers. Pour être sûr, gksudo (ou kdesudo selon le cas) doit être utilisé pour exécuter des programmes avec une interface graphique. Je pense que c’est vraiment un bogue, même si j’ai entendu des explications selon lesquelles gksudo comprend les variables du serveur X et que Sudo n’entraîne probablement aucun problème. Juste comme un conseil; si vous exécutez des programmes graphiques en tant que root, au lieu d'ouvrir un terminal pour chaque programme que vous souhaitez exécuter, tapez ALT-F2 (les touches alt et function 2 en même temps), puis tapez dans la boîte de dialogue qui s'affiche "gksudo programme "sans les guillemets et le programme remplacé par l'application que vous souhaitez exécuter.
Sudo s'exécute en tant qu'utilisateur actuel avec des privilèges élevés. Cela peut potentiellement modifier les autorisations de fichiers de certains fichiers de configuration utilisateur (liés à votre environnement graphique) lors de l'exécution d'applications graphiques. Vous pouvez trouver des erreurs lors de la réexécution de ces applications sans Sudo.
gksudo (kdesudo sous KDE) exécute les applications en tant qu'utilisateur root. Par conséquent, toutes les autorisations de fichiers concernées concernent les fichiers root, et non les fichiers des utilisateurs. réexécuter ces applications sans utiliser gksudo/kdesudo aura toujours le comportement attendu.
La réponse actuelle est incorrecte. Selon le wiki Ubuntu RootSudo :
"Vous ne devez jamais utiliser Sudo pour démarrer des applications graphiques en tant que root. Vous devez utiliser gksudo (kdesudo sur Kubuntu) pour exécuter de tels programmes. Gksudo définit HOME = ~ root et copie le répertoire .Xauthority dans un répertoire tmp. répertoire devenant la propriété de root. (AFAICT, c’est tout ce qui fait la spécificité de l’environnement du processus démarré avec gksudo vs. Sudo). "