错误:crontab:必须suid才能正常工作
我想在非root用户的docker容器中设置cronjob。是否可以在不使用sudo且不安装cron的情况下设置cron? 我正在使用高山码头集装箱。
答案 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