J'ai écrit de nombreux articles sur les sudoers dans le passé, tels que les meilleures pratiques, et j'ai résolu de nombreuses erreurs liées aux fichiers sudoers. Cette fois, un de mes lecteurs m'a demandé de vérifier son fichier sudoers ? Vous trouverez ci-dessous le fichier sudoers des utilisateurs. Cet article explique comment vérifier la syntaxe sudoers.
# # This file MUST be edited with the ‘visudo’ command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin” # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on “#include” directives: #includedir /etc/sudoers.d
Bien que je sois allé ligne par ligne et que j'ai vérifié toutes les lignes, je n'ai pas trouvé le problème. Certaines des erreurs peuvent ne pas être visibles à l'œil humain, telles que la suppression d'un caractère et la fermeture incorrecte des accolades, etc. La question est donc de savoir comment obtenir la vérification de la syntaxe d'un fichier sudoers ?
La meilleure pratique pour modifier directement le fichier sudoers consiste à utiliser visudo
car il a un indicateur qui effectuera une vérification de la syntaxe sur le fichier sudoers. Vous pouvez exécuter la commande ci-dessous une fois les modifications apportées pour vérifier que la syntaxe est correcte.
Tant que vous n'avez pas confirmé que votre fichier sudoers est correct, ne quittez PAS votre session ROOT. Connectez-vous au même serveur séparément et essayez les commandes Sudo pour vérifier.
# visudo -c /etc/sudoers: parsed OK
Une autre fonctionnalité géniale de visudo
est que vous pouvez lui dire de vérifier un fichier spécifié plutôt que seulement le /etc/sudoers
dossier. Cela permet de vérifier la syntaxe du fichier sur n'importe quel serveur avant de le déployer sur le serveur de production.
# visudo -cf /tmp/sudoers /tmp/sudoers: parsed OK