如何使用非root用户设置cronjob?

时间:2017-12-06 06:36:53

标签: linux bash cron system

错误:crontab:必须suid才能正常工作

我想在非root用户的docker容器中设置cronjob。是否可以在不使用sudo且不安装cron的情况下设置cron? 我正在使用高山码头集装箱。

3 个答案:

答案 0 :(得分:7)

是的,您可以在没有sudo的特定用户中运行自己的cron,因为每个用户都将拥有crontab文件,无需显式安装。 要运行任何用户的crontab,请使用-u选项,请注意用户必须有权使用-u

 $ crontab -u <username> -e

答案 1 :(得分:1)

/etc/crontab是系统范围crontab

/etc/crontab的格式如下:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

虽然crontab -e是每个用户,但值得一提的是没有-u参数,crontab命令转到当前用户crontab。您可以crontab -e -u <username>来修改特定用户crontab

请注意,每user crontab个字段中没有'user'字段。

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

可能令人困惑的crontabs的一个方面是root也有自己的crontab。例如crontab -e -u root不会修改/etc/crontab

有关详细信息,请参阅配置cron:https://www.freebsd.org/doc/handbook/configtuning-cron.html

在大多数Linux发行版中,每个用户的crontabs通常存储在:/var/spool/cron/crontabs/<username>

答案 2 :(得分:0)

我已解决,在文件/etc/cron.allow中添加了执行cron作业所需的用户名。如果此文件不存在,则必须创建它。 More details about cron.allow file