sudoersCe document résume les règles essentielles pour déléguer des privilèges de façon sécuritaire sous Linux.
/etc/sudoers/etc/sudoers.d/visudo (validation syntaxique
+ verrouillage)sudo visudo
sudo visudo -f /etc/sudoers.d/web
Utiliser nano avec visudo :
sudo select-editor
Warning
Une erreur de syntaxe dans sudoers peut bloquer l'accès administrateur.
utilisateur hote=(utilisateur_cible:groupe_cible) options: commandes
Exemple générique :
alice ALL=(root) /usr/bin/systemctl restart nginx
Signification :
alice : utilisateur concernéALL : tous les hôtes(root) : exécute la commande en tant que
root/usr/bin/systemctl restart nginx : commande
autorisée%%admin ALL=(ALL) ALL
Séparer avec des virgules :
alice ALL=(root) /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx
User_Alias WEBOPS = alice, bob
Cmnd_Alias WEB_CMDS = /usr/bin/systemctl restart nginx, /usr/bin/systemctl status nginx
WEBOPS ALL=(root) WEB_CMDS
NOPASSWD (à utiliser avec prudence)alice ALL=(root) NOPASSWD: /usr/sbin/reboot
NOPASSWD: ALL sauf cas exceptionnel.ALL si
possible./etc/sudoers.d/ pour organiser les
règles.Lister les privilèges d'un utilisateur :
sudo -l -U alice
Tester la syntaxe sudoers :
sudo visudo -c
sudo -iu alice
sudo systemctl restart nginx
NOPASSWD, aucune demande de mot
de passe.alice.not allowed to run sudo.sudo systemctl stop ssh
exit
Redémarrer un service précis :
%webops ALL=(root) /usr/bin/systemctl restart nginx
Exécuter un script d'entretien précis :
backup ALL=(root) /usr/local/bin/backup.sh
Autoriser un compte applicatif à lire des logs via
journalctl sans mot de passe :
appsupport ALL=(root) NOPASSWD: /usr/bin/journalctl -u nginx