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