man 5 sudoers
言います (「Sudoers ファイル形式」セクション):
複数のエントリがユーザーに一致する場合、それらは順番に適用されます。複数の一致がある場合、最後の一致が使用されます (必ずしも最も具体的な一致とは限りません)。
したがって、これらの行は正確にこの順序である必要があります:
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
および同様に一致する任意の行 (例:%sudo ALL=(ALL:ALL) ALL
) NOPASSWD
の前にある必要があります
一般的な注意:#include
と #includedir
sudoers
を許可 他のファイルを含める . #
させない だまされてください、これらは違います コメント。干渉する可能性のあるエントリを検索する際、#include
を省略しないでください。 と #includedir
指し示す。便利なオプション:sudo -l
.
/etc/sudoers
でこのような行を見つけることがよくあります。 :
# Allow members of group sudo to execute any command
%wheel ALL=(ALL:ALL) ALL
これにより、「ホイール」にいるすべてのユーザーが許可されます " sudo
を利用するグループ 身元の適切な証明 (例:パスワード) とともに。指名されたグループは「sudo」の場合もあります "、"管理者 "、またはその他... (例:行は %sudo
で始まります )
これがファイルに存在する場合は、id
を実行します。 自分がどのグループに属しているかを確認するには:
$ id
uid=1000(attie) gid=1000(attie) groups=1000(attie),27(sudo),117(docker)
ユーザーが適切なグループに属していない場合は、ユーザーをそのグループに追加する必要があります。
別の方法として、両方のルールを 1 つずつリストし、最後に一致したルールが有効になるようにすることもできます (つまり、順序が重要です):
username ALL=(ALL) ALL
username ALL=(ALL) NOPASSWD: /home/username/script.sh
sudo に関する ArchWiki ページを参照してください:https://wiki.archlinux.org/index.php/sudo#Example_entries