Chapitre 19. Gestion de l'accès sudo


Les administrateurs système peuvent accorder l'accès à sudo pour permettre aux utilisateurs non root d'exécuter des commandes administratives qui sont normalement réservées à l'utilisateur root. Ainsi, les utilisateurs non root peuvent entrer ces commandes sans se connecter au compte utilisateur root.

19.1. Autorisations des utilisateurs dans sudoers

Le fichier /etc/sudoers spécifie quels utilisateurs peuvent exécuter quelles commandes à l'aide de la commande sudo. Les règles peuvent s'appliquer à des utilisateurs individuels ou à des groupes d'utilisateurs. Vous pouvez également utiliser des alias pour simplifier la définition de règles pour des groupes d'hôtes, de commandes et même d'utilisateurs. Les alias par défaut sont définis dans la première partie du fichier /etc/sudoers.

Lorsqu'un utilisateur tente d'utiliser les privilèges de sudo pour exécuter une commande qui n'est pas autorisée dans le fichier /etc/sudoers, le système enregistre un message contenant username : user NOT in sudoers dans le journal.

Le fichier par défaut /etc/sudoers fournit des informations et des exemples d'autorisations. Vous pouvez activer un exemple de règle spécifique en supprimant le caractère de commentaire # au début de la ligne. La section sur les autorisations pertinente pour l'utilisateur est marquée par l'introduction suivante :

## Next comes the main part: which users can run what software on
## which machines  (the sudoers file can be shared between multiple
## systems).

Vous pouvez utiliser le format suivant pour créer de nouvelles autorisations sudoers et pour modifier les autorisations existantes :

username hostname=path/to/command

Où ?

  • username est le nom de l'utilisateur ou du groupe, par exemple user1 ou %group1.
  • hostname est le nom de l'hôte sur lequel la règle s'applique.
  • path/to/command est le chemin absolu complet de la commande. Vous pouvez également limiter l'utilisateur à l'exécution d'une commande avec des options et des arguments spécifiques en ajoutant ces options après le chemin d'accès à la commande. Si vous ne spécifiez aucune option, l'utilisateur peut utiliser la commande avec toutes les options.

Vous pouvez remplacer n'importe laquelle de ces variables par ALL pour appliquer la règle à tous les utilisateurs, hôtes ou commandes.

Avertissement

Avec des règles trop permissives, telles que ALL ALL=(ALL) ALL, tous les utilisateurs sont en mesure d'exécuter toutes les commandes en tant que tous les utilisateurs sur tous les hôtes. Cela peut entraîner des risques pour la sécurité.

Vous pouvez spécifier les arguments de manière négative en utilisant l'opérateur !. Par exemple, utilisez !root pour spécifier tous les utilisateurs à l'exception de l'utilisateur root. Notez que l'utilisation des listes d'autorisation pour autoriser des utilisateurs, des groupes et des commandes spécifiques est plus sûre que l'utilisation des listes de blocage pour interdire des utilisateurs, des groupes et des commandes spécifiques. En utilisant les listes d'autorisation, vous bloquez également les nouveaux utilisateurs ou groupes non autorisés.

Avertissement

Évitez d'utiliser des règles négatives pour les commandes, car les utilisateurs peuvent contourner ces règles en renommant les commandes à l'aide de la commande alias.

Le système lit le fichier /etc/sudoers du début à la fin. Par conséquent, si le fichier contient plusieurs entrées pour un utilisateur, les entrées sont appliquées dans l'ordre. En cas de valeurs contradictoires, le système utilise la dernière correspondance, même si elle n'est pas la plus spécifique.

Pour ajouter de nouvelles règles à sudoers, il est préférable de créer de nouveaux fichiers dans le répertoire /etc/sudoers.d/ plutôt que de saisir les règles directement dans le fichier /etc/sudoers. En effet, le contenu de ce répertoire est préservé lors des mises à jour du système. En outre, il est plus facile de corriger les erreurs dans les fichiers séparés que dans le fichier /etc/sudoers. Le système lit les fichiers du répertoire /etc/sudoers.d lorsqu'il atteint la ligne suivante dans le fichier /etc/sudoers:

#includedir /etc/sudoers.d

Notez que le signe numérique # au début de cette ligne fait partie de la syntaxe et ne signifie pas que la ligne est un commentaire. Les noms des fichiers de ce répertoire ne doivent pas contenir de point . et ne doivent pas se terminer par un tilde ~.

Ressources supplémentaires

  • sudo(8) et sudoers(5) pages de manuel
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.