man 5 sudoers říká (část "Formát souboru Sudoers"):
Když se uživateli shoduje více záznamů, jsou použity v pořadí. Pokud existuje více shod, použije se poslední shoda (což nemusí nutně být ta nejkonkrétnější).
Takže byste měli mít tyto řádky přesně v tomto pořadí:
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
a jakýkoli řádek, který se také shoduje (jako např. %sudo ALL=(ALL:ALL) ALL ) by měl být před NOPASSWD řádek.
Obecná poznámka:#include a #includedir povolit sudoers zahrnout další soubory . Nenechte # blázen, tohle není komentáře. Při hledání záznamů, které mohou rušit, byste neměli vynechat co #include a #includedir ukázat na. Užitečná možnost:sudo -l .
Takový řádek často najdete v /etc/sudoers :
# Allow members of group sudo to execute any command
%wheel ALL=(ALL:ALL) ALL
To umožní každému uživateli, který je v „kolečku ", chcete-li použít sudo s vhodným dokladem totožnosti (např.:jejich heslo). Nominovaná skupina může být také "sudo “, „admin ", nebo jiné... (např.:řádek začíná %sudo )
Pokud je v souboru přítomen, spusťte id abyste viděli, ve kterých skupinách jste:
$ id
uid=1000(attie) gid=1000(attie) groups=1000(attie),27(sudo),117(docker)
Pokud váš uživatel není v příslušné skupině, musíte uživatele do této skupiny přidat.
Alternativou by bylo uvést obě vaše pravidla jedno po druhém, přičemž poslední odpovídající pravidlo vstoupí v platnost (tj. pořadí je důležité):
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
Podívejte se na stránku ArchWiki na sudo:https://wiki.archlinux.org/index.php/sudo#Example_entries