crontab -e 产生:/var/spool/cron/: mkstemp: 权限被拒绝

Gre*_*ius 5 cron

我正在尝试在我的用户下设置一个 cron 作业。我运行 crontab -e,进行编辑,然后尝试保存并退出。我收到以下错误消息/var/spool/cron/: mkstemp: Permission denied

ls -al /var/spool/cron/crontabs 的相关输出

drwxr-xr-x 2 root crontab 4096 Nov  4 10:09 .
drwxr-xr-x 5 root root    4096 Nov 19  2014 ..
-rw-rw-rw- 1 greg crontab   91 Nov  4 11:04 greg
-rw------- 1 root crontab 1231 Oct 29 16:18 root
Run Code Online (Sandbox Code Playgroud)

我可以直接编辑 greg 文件并保存它,但我似乎仍然无法运行该作业,即使我在更新后重新启动 cron 也是如此。我需要做什么来解决这个问题?

的输出ls -lha $(which crontab)是:

-rwxr-sr-x 1 root crontab 36K Feb  8  2013 /usr/bin/crontab
Run Code Online (Sandbox Code Playgroud)

的输出groups greg是:

greg : greg adm sudo crontab lpadmin sambashare
Run Code Online (Sandbox Code Playgroud)

Mar*_*ick 10

这将解决您的直接问题:

chmod u=rwx,g=wx,o=t /var/spool/cron/crontabs
Run Code Online (Sandbox Code Playgroud)

但是,如果您可以下载软件包,则更可靠的解决方法是使用apt-get重新安装适当的软件包:

root@ubuntu# dpkg-query -S /var/spool/cron/crontabs
cron: /var/spool/cron/crontabs
root@ubuntu# apt-get install --reinstall cron
Run Code Online (Sandbox Code Playgroud)

首先在确信您对所做的任何本地更改/etc/init/cron.conf/etc/default/cron等被复制的地方,然后再应用。