Назад | Перейти на главную страницу

Директива Sudo в /etc/sudoers.d не работает (но нормально, если она находится в / etc / sudoers)

Я хочу добавить файл в /etc/sudoers.d папка, содержащая директиву, разрешающую www-data для запуска одного конкретного сценария без пароля root.

Директива

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

Если я visudo и добавить его в /etc/sudoers, нет проблем.

Если я помещу эту строку в файл и скопирую ее в /etc/sudoers.d, затем visudo, он сообщает мне, что в файле «синтаксическая ошибка около строки 1».

Есть ли что-то еще, что мне нужно добавить в файл, или что-то еще, что мне нужно сделать, чтобы он работал?

Я использую Ubuntu 18.

Спасибо!

Я обнаружил проблему - для файлов в /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#