man 5 sudoers
dit (section "Format de fichier Sudoers") :
Lorsque plusieurs entrées correspondent à un utilisateur, elles sont appliquées dans l'ordre. Lorsqu'il y a plusieurs correspondances, la dernière correspondance est utilisée (qui n'est pas nécessairement la correspondance la plus spécifique).
Vous devriez donc avoir ces lignes exactement dans cet ordre :
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
et toute ligne qui correspond également (comme par exemple %sudo ALL=(ALL:ALL) ALL
) doit être avant le NOPASSWD
ligne.
Remarque générale :#include
et #includedir
autoriser sudoers
pour inclure d'autres fichiers . Ne laissez pas #
trompez-vous, ce ne sont pas commentaires. Lors de la recherche d'entrées susceptibles d'interférer, vous ne devez pas omettre ce que #include
et #includedir
pointer vers. Option utile :sudo -l
.
Vous trouverez souvent une ligne comme celle-ci dans /etc/sudoers
:
# Allow members of group sudo to execute any command
%wheel ALL=(ALL:ALL) ALL
Cela permettra à tout utilisateur qui se trouve dans la "roue " groupe pour utiliser sudo
avec un justificatif d'identité adapté (ex :son mot de passe). Le groupe nominé peut également être "sudo ", "administrateur ", ou autres... (ex :la ligne commence par %sudo
)
S'il est présent dans le fichier, exécutez id
pour voir à quels groupes vous appartenez :
$ id
uid=1000(attie) gid=1000(attie) groups=1000(attie),27(sudo),117(docker)
Si votre utilisateur n'est pas dans le groupe approprié, vous devez ajouter votre utilisateur à ce groupe.
Une alternative serait de répertorier vos deux règles une par une, la dernière règle correspondante prenant effet (c'est-à-dire que l'ordre est important) :
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
Voir la page ArchWiki sur sudo :https://wiki.archlinux.org/index.php/sudo#Example_entries