首页  编辑  

crontab无法用普通用户启动

Tags: /计算机文档/Linux & Unix/   Date Created:

解决crontab无法在普通用户执行问题


crontab,默认以root用户运行和启动,如果我们以非root用户运行cron或者非root用户启动服务 "/etc/init.d/cron start",会提示错误:
seteuid: Operation not permitted


至始至终crontab无法在普通用户下执行,执行时总是提示错误,要使用crontab还要切换到root用户下,再执行crontab -u username -e来编辑,后来通过google搜索到问题在于文件权限的问题,文件/usr/bin/crontab没有特权。


解决方法:

切换到root用户下再执行,注意有的是 crontab,有的是 cron,请先确定清楚对应的文件名:

chmod u+s /usr/bin/cron

或者

chmod u+s /usr/bin/crontab


改过前的权限是
-rwxr-xr-x 1 root root 70592 Jul 12 2005 /usr/bin/cron

改过后的权限是
-rwsr-xr-x 1 root root 70592 Jul 12 2005 /usr/bin/cron

因为crontab要使用到除了crontab之外的其他文件,而那些文件普通用户是没有更改权限的,那么现在就需要增加他对文件系统的特权,让可以对其它文件也有更改权限。


如果是在 Openshift 中,以非 root 用户运行 cron,则可以在 Pod 的 docker 文件中,添加类似的命令:
chmod gu+rw /var/run
chmod gu+s /usr/sbin/cron
# Optional
# chmod g+s, u-s /usr/bin/crontab
crontab -u my_user /home/my_user/cron.txt