web-dev-qa-db-ja.com

/etc/sudoers.dのSudoディレクティブは機能しません(/ etc / sudoersにある場合は問題ありません)

/etc/sudoers.dがrootパスワードなしで特定のスクリプトを実行できるようにするディレクティブを含むファイルをwww-dataフォルダーに追加したいと思います。

ディレクティブは

www-data ALL=(ALL) NOPASSWD: /path/to/script.sh

visudo/etc/sudoersに追加しても問題ありません。

その行をファイルに入れて/etc/sudoers.d、次にvisudoにコピーすると、ファイルの「1行目付近に構文エラー」があることがわかります。

ファイルに追加する必要があるものはありますか、それを機能させるために他に必要なものはありますか?

Ubuntu 18を実行しています。

ありがとう!

15
Ben Holness

私は問題を見つけました-/etc/sudoers.d内のファイルの場合、ファイルはディレクティブで終わるのではなく、新しい行にある必要があります。これはcat -Aで最も簡単に表示されます。

無効なファイル:

root@server:/etc/sudoers.d# cat -A /etc/sudoers.d/testfile
www-data ALL=(ALL) NOPASSWD: /path/to/script.shroot@server:/etc/sudoers.d#

有効なファイル:

root@server:/etc/sudoers.d# cat -A /etc/sudoers.d/testfile
www-data ALL=(ALL) NOPASSWD: /path/to/script.sh$
root@server:/etc/sudoers.d#
19
Ben Holness