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