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

94

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

Как

 sudo rm somefile
    
задан sayem siam 09.08.2012 в 17:51
источник

3 ответа

179

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

Плохая идея.

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

Использовать root crontab

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

sudo crontab -e

Это открывает% crontab root . sudo не требуется для запуска вашей команды в этом контексте, так как она будет вызываться как root в любом случае.

Поэтому вы просто добавляете следующее в crontab root.

@hourly rm somefile

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

Опять же, это не рекомендуется .

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

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

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

Вы не должны этого делать.

    
ответ дан SirCharlo 09.08.2012 в 18:03
источник
24

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

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

sudo crontab -e
    
ответ дан tgm4883 09.08.2012 в 18:02
0

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

sudo visudo

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

vidyadhar  ALL= NOPASSWD: /bin/rm

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

    
ответ дан Vidyadhar 09.08.2012 в 18:07