Директива 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.

Спасибо!

14
задан 26 November 2019 в 19:20
1 ответ

Я узнал проблему - для файлов в/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
ответ дан 29 December 2019 в 21:59

Теги

Похожие вопросы