繁体   English   中英

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

[英]How to set cronjob with non-root user?

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

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

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

 $ crontab -u <username> -e

/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>

我解决了它在文件/etc/cron.allow中添加执行cron作业所需的用户名。 如果此文件不存在,则必须创建它。 有关cron.allow文件的更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM