Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
5.2. La commande sudo
La commande
sudo
offre une autre approche pour donner un accès administratif aux utilisateurs. Lorsque des utilisateurs de confiance ajoutent sudo
avant une commande administrative, il leur est demandé leur propre mot de passe. Puis, lorsqu'ils ont été authentifié et en supposant que la commande soit autorisée, la commande administrative est exécutée comme s'ils étaient un utilisateur root
.
Le format de base de la commande
sudo
est comme suit :
sudo
command
Dans l'exemple ci-dessus, command sera remplacé par une commande normalement réservée à l'utilisateur
root
, telle que mount
.
La commande
sudo
offre un haut niveau de flexibilité. Par exemple, seuls les utilisateurs répertoriés dans le fichier de configuration /etc/sudoers
sont autorisés à utiliser la commande sudo
et la commande est exécutée dans le shell de l'utilisateur, et non dans un shell root
. Cela signifie que le shell root
peut être complètement désactivé, comme indiqué dans le Guide de sécurité Red Hat Enterprise Linux 7.
Chaque authentification réussie en utilisant la commande
sudo
est journalisée sur le fichier /var/log/messages
et la commande passée avec le nom d'utilisateur de son émetteur est journalisée sur le fichier /var/log/secure
. Si davantage de détails sont requis, veuillez utiliser le module pam_tty_audit
pour activer les audits TTY pour des utilisateurs spécifiques en ajoutant la ligne suivante à votre fichier /etc/pam.d/system-auth
:
session required pam_tty_audit.so disable=pattern enable=pattern
où pattern représente une liste séparée par des virgules d'utilisateurs avec un usage optionnel de globs. Par exemple, la configuration suivante activera les audits TTY pour l'utilisateur
root
et les désactivera pour tous les autres utilisateurs :
session required pam_tty_audit.so disable=* enable=root
Important
Configurer le module PAM
pam_tty_audit
pour les audits TTY n'enregistre que les entrées TTY. Cela signifie que, lorsque l'utilisateur audité se connecte, pam_tty_audit
enregistre les saisies de touches précises de l'utilisateur dans le fichier /var/log/audit/audit.log
. Pour plus d'informations, voir la page man pam_tty_audit(8).
Un autre avantage de la commande
sudo
est qu'un administrateur peut autoriser différents utilisateurs à accéder à des commandes spécifiques en fonction de leurs besoins.
Les administrateurs souhaitant modifier le fichier de configuration
sudo
, /etc/sudoers
, doivent utiliser la commande visudo
.
Pour octroire à quelqu'un la totalité des privilèges administratifs, veuillez saisir
visudo
et ajoutez une ligne similaire à la suivante dans la section de spécification des privilèges utilisateur :
juan ALL=(ALL) ALL
Dans cet exemple, l'utilisateur
juan
peut utiliser sudo
à partir de n'importe quel hôte et peut exécuter n'importe quelle commande.
L'exemple ci-dessous illustre le niveau de granularité possible lors de la configuration de
sudo
:
%users localhost=/usr/sbin/shutdown -h now
Cet exemple montre que tout membre du groupe de système
users
peut exécuter la commande /sbin/shutdown -h now
tant que c'est à partir de la console.
La page man
sudoers
offre une liste détaillée des options pour ce fichier.
Important
Il existe plusieurs risques potentiels à ne pas oublier lors de l'utilisation de la commande
sudo
. Vous pouvez les éviter en modifier le fichier de configuration /etc/sudoers
en utilisant visudo
, comme indiqué ci-dessus. Laisser le ficher /etc/sudoers
dans son état par défaut donnera à tout utilisateur du groupe wheel
un accès root
illimité.
- Par défaut,
sudo
stocke le mot de passe de l'utilisateur sudo pour une période de cinq minutes. Toute utilisation de la commande pendant cette période ne demandera pas à l'utilisateur de saisir à nouveau le mot de passe. Ceci peut être exploité par une personne malveillante si l'utilisateur laisse son poste de travail connecté, sans surveillance et déverrouillé. Ce comportement peut être modifié en ajoutant la ligne suivante au fichier/etc/sudoers
:Defaults timestamp_timeout=value
où value est la longueur souhaitée du délai en minutes. Définir value sur 0 amènesudo
à réclamer un mot de passe à chaque fois. - Si le compte sudo d'utilisateur est compromis, une personne malveillante peut utiliser
sudo
pour ouvrir un nouveau shell avec des privilèges administratifs :sudo /bin/bash
L'ouverture d'un nouveau shell en tant qu'utilisateurroot
de cette manière, ou d'une manière similaire, peut offrir un accès administratif à une personne malveillante sur une durée théoriquement illimitée, outrepassant ainsi la limite de la durée du délai spécifiée dans le fichier/etc/sudoers
et il ne sera pas demandé à cette personne malveillante de ressaisir le mot de passesudo
tant que la session ouverte n'est pas fermée.