visudo говорит, что есть синтаксическая ошибка

Я использую centos 8. Итак, мое намерение заключается в том, чтобы диспетчер пользователей мог запускать эту команду без необходимости использования sudo.

manager ALL=NOPASSWD: tar -czf /root/assignment/result/student-submissions-$(date +\%Y-\%m-\%d).tar.gz /root/assignment/report/main/

Вот результат:

/etc/sudoers: syntax error near line 122

строка 122 - это первая строка в приведенном выше коде.

0
задан 18 August 2021 в 12:28
1 ответ

Я также получаю синтаксическую ошибку, когда запускаю ее в своей системе. Я сделал следующее:

В верхней части файла sudoers (под строками «по умолчанию») добавьте следующую строку (ваша команда, которую вы хотите запустить без пароля):

Cmnd_Alias TAR_COMMAND = /usr/bin/tar -czf /root/assignment/result/student-submissions-*.tar.gz /root/assignment/report/main/

Подстановочный знак *, который я использовал в имя файла, чтобы гарантировать, что команда может отличаться, когда дело доходит до имени файла tar.gz. Таким образом, вам не нужно использовать переменные даты.

Теперь добавьте следующую строку в конце:

manager ALL= NOPASSWD: TAR_COMMAND

Попробуйте, если это работает для вас

PS: Всегда используйте полный путь к исполняемому файлу. При использовании только «tar» каждый двоичный файл с именем «tar» может запускаться из любой папки без пароля. используйте полный путь, чтобы убедиться, что вы можете запустить только /usr/bin/tar.

2
ответ дан 18 August 2021 в 13:13

Теги

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