Commande qui permet d'effectuer une gestion fine des permissions des comptes utilisateurs.
Se connecter en root sur la machine.
Utiliser la commande pour éditer le fichier de configuration de sudo /etc/sudoers
.
visudo
Voici un exemple complet.
## Consultation Cmnd_Alias CONSULT = /bin/ls, /bin/cat, /bin/more, /bin/grep, /usr/bin/find, /bin/view <nom_compte> ALL=(root)NOPASSWD:NOEXEC:CONSULT
Il y a des fonctions cachées dont il faut se méfier.
Exemple : vim, less et quelques autres commandes peuvent autoriser un shell et exécuter des commandes en utilisant l'opérateur !
comme suit.
:!aptitude
Le risque est de donner la possibilité par ces programmes d'exécuter ce qu'on veut en root!
Pour limiter ce désagrément, utiliser l'option NOEXEC
qui interdit cette possibilité.
Pour lancer une commande en tant qu'un autre utilisateur (autre que root), on utilise sudo de la manière suivante :
sudo -u username command
Pour se prémunir de ca, ajouter (root)
.
nom_compte ALL=(root)NOPASSWD:NOEXEC:CONSULT
Du coup, le compte adm_local peut uniquement exécuter les commandes de l'alias CONSULT en tant que root.
Lors de l'utilisation de sudo à travers un shell script, l'exécution n'est pas réalisée à travers un tty complet comme lorsqu'on est connectée sur une machine. L'option par défaut (Defaults requiretty
) oblige un tty pour l'utilisation de sudo.
Pour contourner cela sur un utilisateur spécifique, procéder de la manière suivante.
Defaults:<nom_compte> !requiretty
sudoers avec NOEXEC et EXEC pour le même compte sur plusieurs alias de commandes.
## Besoin AIV conservation privileges Cmnd_Alias CONSULT = /bin/ls, /bin/cat, /bin/more, /bin/grep, /usr/bin/find, /usr/bin/diff, /bin/view Cmnd_Alias EXTRACT = /bin/tar <nom_compte> ALL=(root)NOPASSWD:NOEXEC:CONSULT <nom_compte> ALL=(root)NOPASSWD:EXTRACT Defaults:<nom_compte> !requiretty