Как запустить задание cron с помощью команды sudo

Можно ли запустить задание cron , для которого требуется команда sudo ?

Как:

 sudo rm somefile
159
задан 10 January 2014 в 21:57

3 ответа

Я не буду вдаваться в подробности, насколько это плохая идея; проще говоря, запуск sudoв crontab требует, чтобы ваш пароль был сохранен где-то в чистом виде.

Это плохая идея.


Ниже приведен предпочтительный метод выполнения административных задач через cron. Так как вам не нужно записывать sudo в crontab, если вы изменяете crontab root'а.

Используйте crontab root'а

Выполните следующую команду: Откроется кронтаб корня . sudo не обязательно выполнять команду в этом контексте, так как в любом случае она будет вызвана как root.

Следовательно, вы просто добавите следующее к crontab'у корня.

@hourly rm somefile

Теперь, если вы абсолютно хотите быть небезопасным и рисковать своим паролем, то следующая команда будет запущена из вашей собственной кронтаб и введет ваш пароль автоматически при запросе sudo .

Повторяю, это не рекомендуется .


В своем кронтабе запишите свою команду так:

@hourly echo "password" | sudo -S rm somefile

Очевидным недостатком здесь является то, что если кто-то когда-либо получит доступ к вашему кронтабу, ваш пароль будет читаться открытым текстом.

Вам не следует этого делать.

283
ответ дан 10 January 2014 в 21:57

Выполните следующую команду в терминале

sudo visudo

В конец файла добавлена следующая строка:

vidyadhar  ALL= NOPASSWD: /bin/rm

В приведенном выше примере vidyadhar - это имя пользователя, и он не будет запрашивать пароль, если вы выполняете команду rm через vidyadhar.

5
ответ дан 10 January 2014 в 21:57

Если вы помещаете скрипт из одного из каталогов cron (/etc/cron.*), то вам не нужно использовать sudo, так как он запущен как корневой.

Если вы используете crontab, то вы захотите использовать crontab root. Это запустит его как root, а также не нужно использовать sudo.

sudo crontab -e
43
ответ дан 10 January 2014 в 21:57

Другие вопросы по тегам:

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