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
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
    value est la longueur souhaitée du délai en minutes. Définir value sur 0 amène sudo à 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'utilisateur root 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 passe sudo tant que la session ouverte n'est pas fermée.