37 votes

sudo vs gksudo. différence ?

Quelle est la différence entre sudo y gksudo ?

32voto

999michal Points 21

gksudo est un frontal basé sur GTK pour sudo (BTW, kdesudo est un frontal basé sur Qt), cependant il gère (par défaut) plus de variables environnementales( HOME , XAUTHORITY etc.) que sudo ce qui rend l'exécution de commandes en tant que root plus sûre.


Pour autant que je puisse voir, seule la réponse de @Logics est suffisamment correcte (celle de @Ignacio Vazquez-Abrams n'est pas complète). Voici la clarification que j'essaie d'éviter aux réponses/commentaires de @Davros @knitti (merci de les supprimer/éditer quand ce n'est pas nécessaire) :

  1. Bien que les deux commandes représentent effectivement sudo l'interface utilisateur utilisée n'est PAS la seule différence entre les deux commandes.
  2. L'exécution d'un programme GUI n'est PAS la seule situation dans laquelle vous devriez utiliser gk/kdesudo. Vous devriez plutôt utiliser gk/kdesudo chaque fois que vous ne pouvez pas déterminer si la commande créera/écrira des fichiers dans votre répertoire personnel (ce que la fonction HOME vers laquelle pointe la variable d'environnement 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. donc le type de commandement n'est pas le point clé.
  3. Vous peut encore utiliser sudo pour lancer des applications graphiques en tant que super-utilisateur (par exemple, pour afficher la sortie de la console des applications). HOME (et d'autres comme XAUTHORITY , DISPLAY ) correctement pour que l'application lancée n'échoue pas, ne perde pas sa fonctionnalité ou ne fasse pas de choses vraiment mauvaises. Voici ce que je recommande actuellement pour l'utilisation de sudo
    • sudo -H <rest of the command>
      • (de sudo section 8 page de manuel) Le -H ( HOME ) L'option demande à la politique de sécurité de définir l'option HOME vers le répertoire personnel de l'utilisateur cible (root par défaut) tel que spécifié par la base de données des mots de passe. Selon la politique, cela peut être le comportement par défaut.
      • Cela devrait au moins empêcher la création de fichiers dans sudo le répertoire personnel de l'appelant
    • sudo -H DISPLAY=<a working X display name, usually :0> <rest of a GUI program command>
      • Cela devrait permettre au <programme GUI> d'être exécuté dans un terminal TTY et affiché dans votre environnement de bureau.
  4. Le comportement de la sudo commande n'est pas identique sur tous les systèmes et peut être configuré par le biais de visudo veuillez consulter le site sudoers(5) pour plus d'informations.

28voto

Ignacio Vazquez-Abrams Points 107432

sudo demande le mot de passe sur la ligne de commande, et gksudo fait apparaître une boîte de dialogue à cet effet.

2voto

Davros Points 21

L'utilisation du sudo normal pour exécuter des programmes graphiques peut, en de rares occasions, perturber les permissions sur certains fichiers. Pour être sûr, gksudo (ou kdesudo selon le cas) devrait être utilisé pour exécuter des programmes avec une interface graphique. Je pense que c'est vraiment un bogue, bien que j'aie entendu des explications selon lesquelles gksudo comprend les variables du serveur X et sudo ne le fait pas, ce qui peut entraîner des problèmes. Juste un conseil ; si vous exécutez des programmes graphiques en tant que root, au lieu d'ouvrir un terminal pour chaque programme que vous voulez exécuter, tapez ALT-F2 (alt et touche de fonction 2 en même temps), puis tapez dans la boîte de dialogue qui apparaît "gksudo programme" sans les guillemets et programme remplacé par l'application que vous voulez exécuter.

2voto

Logics Points 111

Sudo s'exécute en tant qu'utilisateur actuel avec des privilèges élevés. Ceci a le potentiel de changer les permissions de certains fichiers de configuration de l'utilisateur (relatifs à votre environnement graphique) lors de l'exécution d'applications graphiques. Des erreurs peuvent se produire lorsque vous exécutez à nouveau ces applications sans sudo.

gksudo (kdesudo sous KDE) exécute les applications en tant qu'utilisateur root, donc toutes les permissions de fichiers touchées sont sur les fichiers de root, pas sur les fichiers des utilisateurs. relancer ces applications sans gksudo/kdesudo aura toujours le comportement attendu.

0voto

Craig Points 1

La réponse actuelle est incorrecte. Selon le Ubuntu RootSudo wiki :

"Vous ne devez jamais utiliser sudo normal pour lancer 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 .Xauthority dans un répertoire tmp. Cela empêche les fichiers de votre répertoire personnel d'être la propriété de root. (AFAICT, c'est tout ce qui est spécial à propos de l'environnement du processus démarré avec gksudo par rapport à sudo). "

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X