Я хочу добавить файл в папку /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#