Un autre avantage de l’utilisation visudo -f
mentionnée dans certaines réponses est qu’il existe une option correspondante -c
ou --check
qui vérifie que vous n’avez pas d’informations non valides dans un fichier sudoers.d ou dans tout autre fichier que vous pourriez vouloir mettre dans sudoers.d. C’est vraiment utile dans les cas mentionnés avec des outils automatisés, comme par exemple
sudo visudo -c -q -f /home/myuser/mysudoers && \
sudo chmod 600 /home/myuser/mysudoers && \
sudo cp /home/myuser/mysudoers /etc/sudoers.d/mysudoers
Ceci vérifie le fichier de manière silencieuse (pas de sortie à cause de -q) et seulement si cela ne renvoie PAS une erreur (exit 1 signifie un fichier sudoers invalide), puis il copiera le fichier dans sudoers.d. De cette façon, vous pourrez créer le fichier et travaillez dessus sans avoir à sudo visudo -f /etc/sudoers.d/myfile
corriger le problème du premier coup (utiliser doit réussir ou rejette le contenu si vous ne le corrigez pas).
En outre, une mise en garde concernant ces déclarations des autres réponses.
D'après mon expérience, les règles concernant les fichiers de ce répertoire sont plus souples que pour / etc / sudoers. Cela a inclus:
Les erreurs dans le fichier n'ont pas causé l'échec de sudo. Cependant, le fichier a été ignoré. Les règles de permission semblent moins strictes. J'autorise le groupe concerné à lire le fichier. Je ne crois pas que ce soit possible avec / etc / sudo.
Les fichiers de /etc/sudoers.d doivent respecter la même syntaxe que / etc / sudoers car, sous le capot, le système concatène simplement tous les fichiers dont le dernier est "gagnant" s'il existe plusieurs entrées pour le même fichier. cadre singulier.
Si les autorisations sont horriblement incorrectes (écriture sur le monde entier) sur les fichiers de /etc/sudoers.d/, ils sont alors ignorés. Cela peut être la cause de l'ignorance des fichiers non valides, sinon vous pouvez sérieusement briser la sudo
commande en ayant un sudoers non valide. fichier d avec les autorisations appropriées.
Vous pouvez autoriser les fichiers sudoers à être lisibles par tout le monde. Si vous autorisez accidentellement l'autorisation d'accès en écriture à "autre", vous devez utiliser sudo lorsqu'un autre utilisateur ou depuis un terminal racine exécutez cette commande. Cela peut également échouer si le fichier appartient à quelqu'un d'autre que root: root.
sudo chmod 644 /etc/sudoers.d/mysudoers
sudo chown root:root /etc/sudoers.d/mysudoers
Je viens de confirmer que si je me lance, chmod o+w /etc/sudoers.d/vagrant
je ne pourrai plus faire sudo en tant qu'utilisateur vagrant, il me demandera mon mot de passe et échouera.
Lorsque j'ai réussi sudo -l
à afficher les autorisations de commande appliquées en tant qu'autre utilisateur sudo valide, j'ai également reçu un avertissement concernant les autorisations de fichier. C'est la même commande que j'ai utilisée pour confirmer que l'utilisateur 'vagabond' a perdu sudo lorsque j'ai appliqué des o+w
autorisations au fichier lui donnant des autorisations sudo.