Существуют определенные терминальные команды, которые могут только быть выполнены как пользователь root. Если мы пытаемся выполнить их без sudo
ключевое слово, они перестали работать с Permission denied
ошибка. Примером была бы команда для создания каталога/папки в определенных местоположениях.
Я должен выполнить одну такую команду как часть задания крона в моей Ubuntu 16.04. Обычно я мог выполнить команду с sudo
ключевое слово в терминале и мне предложили бы ввести пароль пользователя root, и затем команда будет выполняться успешно.
Но теперь, когда я должен ввести эту команду как часть задания крона в моем crontab
файл, как я делаю это? Как я выполняю такую команду как часть cronjob?
Просто выполненный crontab -e
как пользователь root. Это выполнило бы Вашу команду с корневым разрешением и нет никакой потребности добавить sudo
перед ним.
Однако Вы не можете войти в систему с пользователем root, и необходимо выполнить задание как задание крона, Вы должны указанный полный путь в файле крона:
$ * * * * * /usr/bin/sudo /your/command
Также можно добавить NOPASSWD
перед Вашей командой в /etc/sudoers
файл к команде выполнения как корень, но без пароля.
Другая опция состоит в том, чтобы поместить его в crontab в масштабе всей системы в /etc/crontab
(или в файле в /etc/cron.d
), где можно указать пользователя, каждая задача выполняется в:
* * * * * root mkdir /foo/bar