Я не буду вдаваться в подробности, насколько это плохая идея; проще говоря, запуск sudo
в crontab требует, чтобы ваш пароль был сохранен где-то в чистом виде.
Это плохая идея.
Ниже приведен предпочтительный метод выполнения административных задач через cron. Так как вам не нужно записывать sudo
в crontab, если вы изменяете crontab root'а.
Выполните следующую команду: Откроется кронтаб корня .
sudo
не обязательно выполнять команду в этом контексте, так как в любом случае она будет вызвана как root
.
Следовательно, вы просто добавите следующее к crontab'у корня.
@hourly rm somefile
Теперь, если вы абсолютно хотите быть небезопасным и рисковать своим паролем, то следующая команда будет запущена из вашей собственной кронтаб и введет ваш пароль автоматически при запросе sudo
.
Повторяю, это не рекомендуется .
В своем кронтабе запишите свою команду так:
@hourly echo "password" | sudo -S rm somefile
Очевидным недостатком здесь является то, что если кто-то когда-либо получит доступ к вашему кронтабу, ваш пароль будет читаться открытым текстом.
Вам не следует этого делать.
Выполните следующую команду в терминале
sudo visudo
В конец файла добавлена следующая строка:
vidyadhar ALL= NOPASSWD: /bin/rm
В приведенном выше примере vidyadhar - это имя пользователя, и он не будет запрашивать пароль, если вы выполняете команду rm через vidyadhar.
Если вы помещаете скрипт из одного из каталогов cron (/etc/cron.*
), то вам не нужно использовать sudo, так как он запущен как корневой.
Если вы используете crontab, то вы захотите использовать crontab root. Это запустит его как root, а также не нужно использовать sudo.
sudo crontab -e