SUDO
sudo permet de
lancer des
programmes avec les droits root. On peut donc donner la permission
à un utilisateur ou un groupe d'utilisateur d'executer des
programmes avec les droits root (par exeme halt ou reboot), dans le cas
d'un serveur avec plusieurs utilisateurs cela peut-être
pratique.
On peut aussi utiliser sudo, si on a tout simplement la flemme
d'élever ses droits avec su.
sudo est installé par défaut sur la distribution
ubuntu.
Le fichier /etc/sudoers
La configuration de sudo se fait à partir du
fichier
/etc/sudoers
Son edition se fait par l'intermédiaire de la commande
visudo
qui est en fait un editeur de texte amélioré pour
sudo (un peu comme crontab).
Les Groupes
Dans un premier temps, vous devez définir les groupes
d'utilisateurs.
Host_Alias : permet
de créer un groupe dem machines, ceci peut être
utilisé pour donner des
droits à des utilisateurs se connectant à partir
de machines dont vous
avez spéficiées l'adresse. La syntaxe est :
Host_Alias
NOM_DU_GROUPE = host1, host2, host3, etc..
exemple :
Host_Alias HOST_EXEMPLE =
192.168.1.1, *.wanadoo.fr, www.malekal.com
User_Alias
: permet de définir un groupe
d'utilisateurs. La syntasxe est :
User_Alias
NOM_DU_GROUPE = user1, user2, user3, etc..
exemple:
User_Aias
USR_HALT = yann, herve, pierre
User_Alias USR_ROOT =
christophe, laurent
Cmnd_Alias
: permet de créer un groupe de
commandes, afin de donner des droits sur
ces commandes à un groupe d'utilisateur. La syntaxe est :
Cmd_Alias
NOM_DU_GROUPE = chemin_complet_commande1, chemin_complet_commande2,
chemin_complet_commande3
exemple :
Cmnd_Alias
CMND_HALT = /sbin/halt, /sbin/reboot, /sbin/shutdown
-r, /sbin/shutdown -h
Sachez que vous pouvez utiliser le ! devant la commune pour interdire
l'utilisation de la commande.
Ceci peut etre interressant pour interdire certains
paramètres
d'une commande, dans l'exemple ci-dessous, si on vait eu la ligne :
Cmnd_Alias
CMND_HALT = /sbin/halt, /sbin/reboot, !/sbin/shutdown -*,
/sbin/shutdown -r, /sbin/shutdown -h
Cela signifirait qu'on ne peut utiliser aucune option avec
/sbin/shutdown sauf -r et -h
Runas_Alias
: permet de définir un groupe
d'utilisateurs à partir duquel seront executé les
commandes.
Runas_Alias
NOM_DU_GROUPE = user1, user2, user3, etc..
exemple:
User_Aias
RUNAS_HALT = yann, herve, pierre
User_Alias RUNAS_ROOT =
christophe, laurent
Donner les droits
La syntaxe est :
GROUPE_DE_USER GROUPE_D_HOST
= (GROUPE_DE_RUNAS)NOPASSWD: GROUPE_DE_COMMANDES
ici l'option NOPASSWD permet de ne pas demander le mot de passe lors de
l'utilisation de sudo.
Exemple
Voici le fichier
/etc/sudoers
par défaut de la distribution ubuntu
#
/etc/sudoers
#
# This file MUST be
edited with the 'visudo' command as root.
#
# See the man page for
details on how to write a sudoers file.
#
# Host alias
specification
# User alias
specification
# Cmnd alias
specification
# Defaults
Defaults
!lecture,tty_tickets,!fqdn
# User privilege
specification
root
ALL=(ALL) ALL
Cette ligne signifie que l'utilisateur root peut lancer
à
partir de n'importe quelle machine (premier ALL) à partir de
n'importe
quel utilisateur (second ALL) n'importe quelle commande
(troisième ALL)
# Members of the admin
group may gain root privileges
%admin
ALL=(ALL) ALL
Ici cela signifie que le groupe admin (issu
de
/etc/group) peut lancer à n'importe quelle machine (premier
ALL)
à partir de n'importe quel utilisateur (second ALL)
n'importe
quelle commande (troisième ALL).
yann localhost = (ALL)
ALL, (root) !ALL
Cette ligne signifie que l'utilisateur yann à partir de la
machine (localhost) peut lancer à partir de n'importe quel
utilisateur (ALL entre parenthèse) SAUF le compte root,
n'importe quelle commande (second ALL).
Après avoir modifier le fichier de configuration, visudo
vérifie la syntaxe, si cette dernière est
mauvaise, il
vous le fera savoir! corrigez alors votre erreur.
Vous pouvez aussi utiliser la commande
visudo -c
Retour à la page
d'accueil