====== Sudo / Sudoers ======
===== Editer sudo (ajout / modif de droit) =====
Toujours utiliser cette commande pour modifier le fichier /ETC/SUDOERS
visudo
user,%group source1,source2 = [NOPASSWD:] [(UID)[:(GID)]] cmd1,!cmd2
source1,source2 : \\
une adresse ou plage IP : 10.0.0.1 10.0.0.0/16 \\
un nom d'hôte, de domaine : pc1.sirius.com *.sirius.com \\
ALL : toutes les machines
NOPASSWD: \\
Optionnel. Pour passer outre les mots de passe. Bien sûr, cette directive est à utiliser avec la plus grande prudence. Incompatible avec la directive "(*ID)" (la directive PASSWD est également disponible).
(UID) \\
Optionnel. Définit les exécutants. Par défaut, les privilèges utilisés sont ceux de root, mais il est possible d'utiliser les privilèges d'autres utilisateurs. On peut fournir une liste d’utilisateurs, séparés par une virgule. un utilisateur Unix : hector \\
ALL : \\
n'importe quel utilisateur, root par défaut
Nota : il faudra dans ce cas d'invoquer sudo avec le bon utilisateur :
sudo -u hector commande.sh \\
(:GID) \\
Optionnel. Définit les groupes exécutants. On peut fournir une liste de groupes, séparés par une virgule.
un groupe Unix : **compta**
ALL : \\
n'importe quel groupe, root par défaut Lorsqu'il n'y a pas de distinction entre les exécutants utilisateurs et groupes, la recherche est effectuée indifféremment sur les utilisateurs et les groupes.
cmd1,!cmd2 Pour spécifier les commandes à utiliser. On peut fournir une liste séparée par des virgules. Préciser le chemin des commandes. Il est possible d'affiner les privilèges accordés par l'utilisation des options de commandes.
une liste de commandes, avec ou sans options :
/usr/sbin/user* , /bin/mount /dev/cdrom * , /bin/umount /dev/cdrom
ALL : toutes les commandes (comme root)
===== Exemple =====
Certains utilisateurs doivent pouvoir monter ou démonter le système de fichier d'un CD-Rom. Nous
allons accorder aux membres du groupe CD-Rom (déjà existant) les permissions nécessaires :
visudo
%cdrom ALL = /bin/mount /dev/cdrom * , /bin/umount /dev/cdrom
Il ne reste plus qu'à ajouter les utilisateurs autorisés dans le groupe CD-Rom :
# usermod -a -G cdrom hector
L'utilisateur peut connaître la liste des délégations disponibles :
hector@debian:~$ sudo -l
[sudo] password for hector:
User hector may run the following commands on this host:
(root) /bin/mount /dev/cdrom *, /bin/umount /dev/cdrom
===== UTILISER LES ALIAS =====
# Host alias specification
# Pour définir des groupes de machines ou de réseaux
# option utilisée lorsque le fichier sudoers est utilisé sur plusieurs machines
Host_Alias LAN=172.16.0.0/16,172.18.0.0/16,10.0.0.0/8
# User alias specification
# Pour définir des groupes d’utilisateurs
User_Alias ADMIN=hector,marcel,jeanne
User_Alias OP_CD=edmonde,marcel
# Runas alias specification
# pour définir les exécutants
Runas_Alias DB = oracle, sybase
# Cmnd alias specification
# Pour définir des groupes de commandes
Cmnd_Alias CDROM=/bin/mount /dev/cdrom * , /bin/umount/ /dev/cdrom
# User privilege specification
# Il ne reste plus qu'à affecter les alias en lieu et place des options
OP_CD ALL= CDROM