Comment résoudre l'incident "Nom d'utilisateur non présent dans le fichier Sudoers" sur Linux

Publié 27 août 2024

Rencontrez-vous l'erreur "le nom d'utilisateur n'est pas dans le fichier sudoers" lorsque vous essayez d'exécuter une commande avec les privilèges sudo ? Dans cet article, nous allons examiner deux façons de résoudre ce problème et d'accorder l'accès sudo à l'utilisateur.

Solution rapide : Ajouter l'utilisateur au fichier sudoers

Pour résoudre l'erreur "le nom d'utilisateur n'est pas dans le fichier sudoers" et accorder les privilèges sudo à l'utilisateur, vous pouvez ajouter le nom d'utilisateur au fichier sudoers. Voici un guide :

  1. Ouvrez un terminal et connectez-vous en tant qu'utilisateur avec des privilèges sudo ou en tant qu'utilisateur root.

  2. Exécutez cette commande pour modifier le fichier sudoers :

    sudo visudo

    Cette commande ouvre le fichier sudoers dans un éditeur de texte et verrouille le fichier, empêchant les modifications multiples.

  3. Allez à la fin du fichier et ajoutez cette ligne :

    nom_utilisateur ALL=(ALL) ALL

    Remplacez "nom_utilisateur" par le nom d'utilisateur auquel vous souhaitez accorder les privilèges sudo.

  4. Sauvegardez les modifications et quittez l'éditeur de texte. Dans l'éditeur de texte par défaut (nano), appuyez sur Ctrl+X, puis Y, et Entrée pour sauvegarder et quitter.

Méthode alternative : Ajouter l'utilisateur au groupe sudo

Au lieu de modifier directement le fichier sudoers, vous pouvez ajouter l'utilisateur au groupe sudo. Cette méthode est plus simple et présente moins de risques d'erreurs de syntaxe. Pour ajouter l'utilisateur au groupe sudo, utilisez cette commande :

sudo usermod -aG sudo nom_utilisateur

Remplacez "nom_utilisateur" par le nom d'utilisateur que vous souhaitez ajouter au groupe sudo.

---exemple Pour ajouter l'utilisateur "jane" au groupe sudo, exécutez :

sudo usermod -aG sudo jane

Après avoir exécuté cette commande, "jane" sera dans le groupe sudo et pourra utiliser sudo pour exécuter des commandes avec les permissions de superutilisateur.

Vérifier l'accès sudo d'un utilisateur

Pour vérifier si un utilisateur a l'accès sudo, vous pouvez utiliser la commande id pour voir ses appartenances aux groupes :

id nom_utilisateur 

Si l'utilisateur est dans le groupe sudo ou a été ajouté au fichier sudoers, vous devriez voir "sudo" listé dans ses groupes.

Considérations importantes

  • Soyez prudent lorsque vous accordez l'accès sudo aux utilisateurs, car cela leur permet d'effectuer des tâches qui peuvent modifier les fichiers et les paramètres du système.
  • N'accordez l'accès sudo qu'aux utilisateurs qui en ont besoin pour leurs tâches et en qui vous avez confiance.
  • Vérifiez et mettez à jour régulièrement la liste des utilisateurs ayant l'accès sudo pour maintenir la sécurité de votre système.

Comprendre la raison de l'erreur

Le fichier sudoers est un fichier de configuration dans les systèmes Linux qui contrôle les permissions des utilisateurs pour exécuter des commandes avec sudo (superuser do). Ce fichier spécifie quels utilisateurs ou groupes sont autorisés à utiliser sudo et à obtenir les privilèges root.

Lorsqu'un utilisateur essaie d'exécuter une commande avec sudo, le système vérifie le fichier sudoers pour vérifier si l'utilisateur a les permissions nécessaires. Si l'utilisateur n'est pas listé dans le fichier ou n'a pas les permissions appropriées, le message d'erreur "le nom d'utilisateur n'est pas dans le fichier sudoers" apparaît.

Le fichier sudoers est généralement situé à /etc/sudoers et ne doit être modifié qu'en utilisant la commande visudo, qui vérifie les erreurs de syntaxe et empêche la corruption du fichier.

Raisons courantes de l'erreur

  1. Utilisateur non ajouté au fichier sudoers : Si l'utilisateur a été récemment créé ou si les permissions sudo n'ont pas été accordées lors de la configuration de l'utilisateur, son nom d'utilisateur ne sera pas dans le fichier sudoers.

  2. Utilisateur retiré du fichier sudoers : Si les permissions sudo de l'utilisateur ont été révoquées ou si son entrée a été accidentellement supprimée du fichier sudoers, il n'aura plus l'accès sudo.

  3. Utilisateur non dans le groupe sudo : Certaines distributions Linux, comme Ubuntu, utilisent un groupe sudo au lieu d'ajouter directement les utilisateurs au fichier sudoers. Si l'utilisateur n'est pas membre du groupe sudo, il ne pourra pas utiliser sudo.

  4. Erreurs de syntaxe dans le fichier sudoers : S'il y a des erreurs de syntaxe ou des fautes dans le fichier sudoers, cela peut empêcher sudo de fonctionner correctement pour tous les utilisateurs.

graph TD A[L'utilisateur essaie d'exécuter une commande sudo] --> B{L'utilisateur est-il dans le fichier sudoers ?} B -->|Oui| C[Commande exécutée avec les permissions sudo] B -->|Non| D{L'utilisateur est-il dans le groupe sudo ?} D -->|Oui| C[Commande exécutée avec les permissions sudo] D -->|Non| E[Erreur : le nom d'utilisateur n'est pas dans le fichier sudoers]

---exemple:"Ajouter un utilisateur au fichier sudoers"

Pour ajouter un utilisateur nommé "john" au fichier sudoers, suivez ces étapes :

  1. Ouvrez un terminal et exécutez sudo visudo.
  2. Ajoutez la ligne suivante au fichier : john ALL=(ALL) ALL.
  3. Sauvegardez le fichier et quittez.

Maintenant, l'utilisateur "john" aura les privilèges sudo.

Résoudre l'erreur

Pour résoudre l'erreur "le nom d'utilisateur n'est pas dans le fichier sudoers", vous devez soit ajouter l'utilisateur directement au fichier sudoers, soit l'ajouter au groupe sudo, selon la configuration de votre système.

Méthode Commande
Ajouter l'utilisateur au fichier sudoers sudo visudo, puis ajouter nom_utilisateur ALL=(ALL) ALL
Ajouter l'utilisateur au groupe sudo sudo usermod -aG sudo nom_utilisateur

Utilisez toujours la commande visudo pour modifier le fichier sudoers afin de minimiser le risque d'erreurs de syntaxe et d'assurer que les permissions sudo sont accordées correctement.

Lorsque vous rencontrez le message d'erreur "le nom d'utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé", cela signifie généralement que l'utilisateur avec lequel vous essayez d'exécuter des commandes n'a pas les privilèges sudo nécessaires. Cette erreur se produit lorsqu'un utilisateur du système tente d'exécuter une commande en utilisant la commande sudo sans être listé dans le fichier sudoers ou sans être membre du groupe sudo.

Ajouter un utilisateur au groupe sudo

Une autre façon de donner à un utilisateur les privilèges sudo est de l'ajouter au groupe sudo. Le groupe sudo est un groupe spécial qui permet à ses membres d'utiliser la commande sudo et d'exécuter des commandes avec les permissions de superutilisateur.

Pour ajouter un utilisateur au groupe sudo, utilisez la commande usermod avec les options -aG suivies du nom du groupe et du nom d'utilisateur :

sudo usermod -aG sudo nom_utilisateur

Remplacez nom_utilisateur par le nom d'utilisateur réel que vous souhaitez ajouter au groupe sudo.

Par exemple, pour ajouter l'utilisateur "jane" au groupe sudo, exécutez :

sudo usermod -aG sudo jane

Après avoir exécuté cette commande, l'utilisateur "jane" sera membre du groupe sudo et pourra utiliser la commande sudo pour exécuter des commandes avec les privilèges de superutilisateur.

L'utilisation du groupe sudo pour gérer les permissions des utilisateurs présente plusieurs avantages :

Gestion simplifiée

Au lieu de modifier le fichier sudoers pour chaque utilisateur, vous pouvez ajouter ou supprimer des utilisateurs du groupe sudo pour donner ou retirer l'accès sudo.

Cohérence

En utilisant le groupe sudo, vous gardez une méthode cohérente pour donner des privilèges sudo à plusieurs utilisateurs.

Risque réduit d'erreurs de syntaxe

L'ajout d'utilisateurs au groupe sudo supprime la nécessité de modifier directement le fichier sudoers, réduisant ainsi le risque d'erreurs de syntaxe qui pourraient empêcher sudo de fonctionner correctement.

Audit plus facile

Vous pouvez rapidement vérifier quels utilisateurs ont des privilèges sudo en listant les membres du groupe sudo à l'aide de la commande :

grep sudo /etc/group

Cette commande affichera une ligne comme :

sudo:x:27:jane,bob,alice

Dans l'exemple ci-dessus, les utilisateurs "jane", "bob" et "alice" sont membres du groupe sudo et ont des privilèges sudo.

Il est important de noter que le groupe sudo peut ne pas être disponible dans toutes les distributions Linux. Certains systèmes, comme CentOS, utilisent un groupe wheel à la place. Vérifiez toujours la documentation de votre distribution pour trouver le bon groupe pour donner des privilèges sudo.

Par exemple, sous CentOS, vous pouvez ajouter un utilisateur au groupe wheel pour lui donner des privilèges sudo :

sudo usermod -aG wheel nom_utilisateur

Modifier le fichier sudoers

Bien qu'ajouter un utilisateur au groupe sudo soit une façon simple d'accorder des privilèges sudo, il peut y avoir des situations où vous devez modifier le fichier sudoers. La modification du fichier sudoers doit être faite avec prudence, car des erreurs de syntaxe peuvent empêcher sudo de fonctionner.

Pour modifier le fichier sudoers, vous devez utiliser un éditeur de texte avec les privilèges root. La méthode recommandée est d'utiliser la commande visudo, qui ouvre le fichier sudoers dans l'éditeur de texte par défaut et vérifie les erreurs de syntaxe lors de la sauvegarde des modifications. Pour ouvrir le fichier sudoers avec visudo, exécutez :

sudo visudo

Une fois le fichier ouvert, vous pouvez ajouter un utilisateur ou un groupe au fichier sudoers en utilisant la syntaxe suivante :

nom_utilisateur ALL=(ALL) ALL
%nom_groupe ALL=(ALL) ALL

Remplacez nom_utilisateur par le nom d'utilisateur réel et nom_groupe par le nom de groupe réel auquel vous souhaitez accorder des privilèges sudo.

---exemple:"Accorder l'accès sudo à un utilisateur"

Pour donner l'accès sudo à l'utilisateur "john", ajoutez cette ligne au fichier sudoers :

john ALL=(ALL) ALL

Cela permet à l'utilisateur "john" d'exécuter n'importe quelle commande avec des privilèges sudo depuis n'importe quel hôte.

Bonnes pratiques lors de la modification du fichier sudoers

  • Utilisez toujours visudo pour modifier le fichier sudoers
  • Vérifiez deux fois la syntaxe de vos modifications
  • Limitez l'accès sudo aux commandes et utilisateurs nécessaires uniquement
  • Utilisez des groupes pour gérer l'accès sudo pour plusieurs utilisateurs
  • Gardez une sauvegarde de votre fichier sudoers avant d'apporter des modifications

Vérifier la correction

Après avoir ajouté l'utilisateur au fichier sudoers ou au groupe sudo, vous devez vérifier que les changements ont pris effet et que l'utilisateur peut maintenant exécuter des commandes avec des privilèges sudo.

Tester l'accès sudo

Pour vérifier si l'utilisateur peut exécuter des commandes sudo, passez à son compte ou connectez-vous en tant que cet utilisateur, puis essayez d'exécuter une commande avec sudo, comme :

sudo ls

Cette commande essaiera de lister le contenu du répertoire actuel avec les privilèges de superutilisateur. Si l'utilisateur a l'accès sudo, la commande s'exécutera avec succès après que l'utilisateur ait entré son mot de passe. Si l'utilisateur n'a pas de privilèges sudo, un message d'erreur apparaîtra, indiquant que l'utilisateur n'est pas dans le fichier sudoers.

Voici un exemple de test d'accès sudo pour l'utilisateur "john" :

su john
sudo ls

Si "john" a des privilèges sudo, la commande ls s'exécutera et affichera le contenu du répertoire. Sinon, un message d'erreur comme celui-ci apparaîtra :

john n'est pas dans le fichier sudoers. Cet incident sera signalé.

Vérifier les appartenances aux groupes

Une autre façon de vérifier l'accès sudo est de vérifier les appartenances aux groupes de l'utilisateur avec la commande groups :

groups john

Si l'utilisateur a été ajouté au groupe sudo, vous devriez voir "sudo" dans la sortie :

john : john sudo

Cette sortie confirme que l'utilisateur "john" est dans le groupe sudo et a des privilèges sudo.

Résoudre les problèmes d'accès sudo

Si l'utilisateur ne peut toujours pas utiliser sudo après avoir été ajouté au fichier sudoers ou au groupe sudo, vérifiez les points suivants :

  • La syntaxe du fichier sudoers est correcte et il n'y a pas d'erreurs dans l'entrée de l'utilisateur
  • L'utilisateur a été ajouté au bon groupe (sudo ou wheel, selon la distribution)
  • L'utilisateur s'est déconnecté et reconnecté, ou le système a été redémarré pour que les changements de groupe prennent effet

Messages d'erreur sudo courants et solutions

Message d'erreur Solution
nom_utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé. Ajoutez l'utilisateur au fichier sudoers ou au groupe sudo.
[sudo] mot de passe pour nom_utilisateur :
nom_utilisateur n'est pas dans le fichier sudoers. Cet incident sera signalé.
L'utilisateur n'est pas dans le fichier sudoers ou le groupe sudo. Ajoutez l'utilisateur au bon groupe ou fichier.
Désolé, l'utilisateur nom_utilisateur n'est pas autorisé à exécuter '/chemin/vers/commande' en tant que root sur nom_hôte. L'utilisateur est dans le fichier sudoers, mais son entrée ne lui permet pas d'exécuter la commande. Modifiez l'entrée de l'utilisateur dans le fichier sudoers pour accorder les permissions nécessaires.

---exemple Pour ajouter l'utilisateur "alice" au groupe sudo sur un système Ubuntu, utilisez cette commande :

usermod -aG sudo alice

Après avoir exécuté cette commande, déconnectez-vous et reconnectez-vous en tant que "alice", puis testez l'accès sudo :

sudo ls

Si la commande s'exécute avec succès, "alice" a maintenant des privilèges sudo.