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
<nom_compte> 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:<nom_compte> !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
<nom_compte> ALL=(root)NOPASSWD:NOEXEC:CONSULT
<nom_compte> ALL=(root)NOPASSWD:EXTRACT
Defaults:<nom_compte> !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