Outils pour utilisateurs

Outils du site


visudo

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
visudo [2024/04/06 15:19] lucvisudo [2024/04/06 15:19] (Version actuelle) – [Donner des droits spécifiques] luc
Ligne 1: Ligne 1:
 +====== VISUDO =======
  
 +===== SUDO =====
 +
 +Sous Linux, ''sudo'' permet à un utilisateur lambda d’exécuter une unique commande avec des droits étendus.
 +
 +On peut définir QUI a le droit, limiter ces droits à quelques commandes (QUOI)...\\
 +La config se détaille dans le fichier ''/etc/sudoers''
 +
 +Cependant il est __interdit__ d'éditer directement le fichier ''sudoers'' : en effet, de nombreuses personnes n'accèdent aux droits root que par l'intermédiaire de la commande ''sudo'', si le fichier de conf est erroné, sudo ne se lancera plus et on perd complètement tout accès à root... plus possible de corriger son erreur.\\
 +C'est pourquoi il existe l'utilitaire ''visudo''.
 +
 +===== VISUDO =====
 +
 +''visudo'' verrouille le fichier ''sudoers'', ouvre une copie temporaire en édition, valide le contenu après l'édition et si le contenu est valide, met à jour ''sudoers''.
 +
 +==== Choisir l'éditeur ====
 +
 +On peut choisir l'éditeur par une variable d'environnement :
 +<code bash>
 +export EDITOR=/path/to/editor  # ex: /usr/bin/vim
 +
 +visudo
 +</code>
 +
 +Cependant, il faut effectuer l'opération à chaque fois que la session est fermée/ouverte. On peut rajouter une ligne dans ''~/.bashrc''.
 +
 +Autre solution : mettre à jour le fichier de conf de visudo, c'est à dire le fichier ''/etc/sudoers'' (en utilisant visudo bien évidemment ;-) ) :
 +<code bash>
 +# fichier /etc/sudoers
 +
 +## Choisir par défaut l'éditeur
 +Defaults editor=/usr/bin/vim
 +</code>
 +
 +===== Donner des droits spécifiques =====
 +
 +<code bash>
 +## /etc/sudoers, édité par visudo
 +
 +# donner les droits root à un utilisateur pour 1 commande
 +USER_NAME ALL = (root) /path/to/command
 +
 +# donner les droits root à un utilisateur pour toutes les commandes
 +USER_NAME ALL=(ALL:ALL) ALL
 +
 +# Restreindre à une seule machine par hostname
 +USER_NAME HOST_NAME=(ALL:ALL) ALL
 +</code>