man 5 sudoers
dice (sezione "Sudoers File Format"):
Quando più voci corrispondono a un utente, vengono applicate in ordine. Dove ci sono più corrispondenze, viene utilizzata l'ultima corrispondenza (che non è necessariamente la corrispondenza più specifica).
Quindi dovresti avere queste righe esattamente in questo ordine:
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
e qualsiasi riga che corrisponda anch'essa (come ad esempio %sudo ALL=(ALL:ALL) ALL
) dovrebbe essere prima del NOPASSWD
linea.
Nota generale:#include
e #includedir
consentire sudoers
per includere altri file . Non lasciare che #
ingannati, questi non Commenti. Durante la ricerca di voci che potrebbero interferire, non dovresti omettere cosa #include
e #includedir
indicare. Opzione utile:sudo -l
.
Troverai spesso una riga come questa in /etc/sudoers
:
# Allow members of group sudo to execute any command
%wheel ALL=(ALL:ALL) ALL
Ciò consentirà a qualsiasi utente che si trovi nella "ruota " gruppo per utilizzare sudo
con idonea prova di identità (es:la propria password). Il gruppo nominato può anche essere "sudo ", "amministratore ", o altri... (ad esempio:la riga inizia con %sudo
)
Se questo è presente nel file, esegui id
per vedere in quali gruppi sei:
$ id
uid=1000(attie) gid=1000(attie) groups=1000(attie),27(sudo),117(docker)
Se il tuo utente non è nel gruppo appropriato, devi aggiungerlo a quel gruppo.
Un'alternativa sarebbe quella di elencare entrambe le regole una per una, con l'ultima regola corrispondente che ha effetto (ad esempio:l'ordine è importante):
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
Vedi la pagina ArchWiki su sudo:https://wiki.archlinux.org/index.php/sudo#Example_entries