====== sudo ======
===== Généralités =====
Commande qui permet d'effectuer une gestion fine des permissions des comptes utilisateurs.
===== Mettre en place sudoers pour un compte =====
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
ALL=(root)NOPASSWD:NOEXEC:CONSULT
===== Restreindre les applications =====
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é.
===== Restreindre le changement d'utilisateur =====
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.
===== Restriction tty =====
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: !requiretty
===== Exemple de sudoers complet =====
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
ALL=(root)NOPASSWD:NOEXEC:CONSULT
ALL=(root)NOPASSWD:EXTRACT
Defaults: !requiretty
===== Lien utiles =====
* Configuration globale : https://help.ubuntu.com/community/Sudoers
* Configuration globale : http://ubuntuforums.org/showthread.php?t=1132821
* Cas du ''sudo cd'' : http://linuxcommando.blogspot.com/2007/11/sudo-hacks-making-cd-and-redirection.html