有一台转移到新主机的阿里云Linux,发现无法设置定时任务了,无论怎么编辑,crontab -e 就是无法存储。错误提示是没有权限,下面的是近似问题,提示不是原文,因为已经找不着了:

root@X [/tmp]# crontab -e
crontab: installing new crontab
crontab: error renaming /var/spool/cron/tmp.XXXXDSGEDV to /var/spool/cron/root
rename: Operation not permitted
crontab: edits left in /tmp/crontab.xO3YcB

百思不得其解。进入/var/spool/下查看cron目录,正常的,但是在cron里面没有权限建立文件,这是根源。用vim编辑一个测试文件,无法保存在这个cron目录,报告错误E212 – 权限问题。

drwx——  2 root   root    4096 Nov  6 00:15 cron

后来想到,目录可能有什么特殊的地方,root用户也被约束了。

#lsattr /var/spool/cron/
—-ia——-e- /var/spool/cron

去掉特别属性:

chattr  -ai /var/spool/cron

再次编辑定时任务:crontab -e ,保存,解决。

chattr/lsattr的说明在这里:https://www.wikiwand.com/en/Chattr

顺便说句,这年头,用不了谷歌的人就别干研发了,不解释。

 

macOS High Sierra升级注意事项和解决办法