Как запустить команды SUDO ... в cronjobs в Ubuntu 16.04? - proUbuntu
Винтажный Клуб для гитаристов
2 голосов
/

Существуют определенные команды терминала, которые могут выполняться только как пользователь root. Если мы попытаемся выполнить их без ключевого слова sudo, они потерпят неудачу с ошибкой Permission denied. Примером может служить команда для создания каталога / папки в определенных местах.

Мне нужно запустить одну такую ​​команду как часть задания cron в моем Ubuntu 16.04. Обычно я могу выполнить команду с ключевым словом sudo в терминале, и мне будет предложено ввести пароль пользователя root, и затем команда будет выполнена успешно.

Но теперь, когда мне нужно ввести эту команду как часть задания cron в моем файле crontab, как мне это сделать? Как мне запустить такую ​​команду как часть cronjob?

Ответы [ 2 ]

4 голосов
/

Просто запустите crontab -e от имени пользователя root . При этом ваша команда будет запускаться с разрешением root , и нет необходимости добавлять sudo перед ней.

Однако вы не можете войти в систему с root пользователем, и вам нужно выполнить свою работу в качестве задания cron, вы должны указать полный путь в файле cron:

 $ * * * * * /usr/bin/sudo /your/command

Также вы можете добавить NOPASSWD перед вашей командой в файле /etc/sudoers, чтобы запустить команду как root , но без пароля.

2 голосов
/

Другой вариант - поместить его в системный crontab на /etc/crontab (или в файл на /etc/cron.d), где вы можете указать пользователя, с которым запускается каждая задача:

* * * * * root mkdir /foo/bar
Добро пожаловать на сайт proUbuntu, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...