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
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
.
On peut choisir l'éditeur par une variable d'environnement :
export EDITOR=/path/to/editor # ex: /usr/bin/vim visudo
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 ) :
# fichier /etc/sudoers ## Choisir par défaut l'éditeur Defaults editor=/usr/bin/vim
## /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