crontab -e 產生: /var/spool/cron/: mkstemp: 權限被拒絕

crontab -e 產生: /var/spool/cron/: mkstemp: 權限被拒絕

我正在嘗試在我的用戶下設定 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

我可以直接編輯 greg 檔案並保存它,但即使我在更新後重新啟動 cron,我似乎仍然無法運行該作業。我需要做什麼來解決這個問題?

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

-rwxr-sr-x 1 root crontab 36K Feb  8  2013 /usr/bin/crontab

的輸出groups greg是:

greg : greg adm sudo crontab lpadmin sambashare

答案1

這將解決您眼前的問題:

chmod u=rwx,g=wx,o=t /var/spool/cron/crontabs

但是,如果您可以下載軟體包,解決此問題的更可靠方法是重新apt-get安裝適當的軟體包:

root@ubuntu# dpkg-query -S /var/spool/cron/crontabs
cron: /var/spool/cron/crontabs
root@ubuntu# apt-get install --reinstall cron

首先確保您對 、 等所做的任何本機變更/etc/init/cron.conf都會/etc/default/cron複製到某處然後重新套用。

答案2

Mark Plotnick 提到的解決方案對我不起作用,但是將我的用戶添加到群組後crontab它起作用了:

sudo adduser myname crontab

您需要登出並再次登入才能套用此變更。

答案3

在 Ubuntu 22.04 中:

crontab ~/admin/scripts/crontab.txt

/var/spool/cron/: mkstemp: 權限被拒絕

$ ls -lha $(which crontab)

-rwxr-sr-x 1 root crontab 39K 2022 年 3 月 23 日 /usr/bin/crontab

~$ ls -lha /var/spool/cron/crontabs

ls: 無法開啟目錄 '/var/spool/cron/crontabs': 權限被拒絕

~$ sudo ls -lha /var/spool/cron/crontabs

總計 8.0K

drwx-wx--T 2 根 systemd-journal 4.0K 2023 年 3 月 2 日。

drwxr-xr-x 3 root root 4.0K 七月 22 09:48 ..

所以我們需要2組用戶執行才能獲得權限:

sudo usermod -a -G systemd-journal <user>
sudo usermod -a -G systemd-journal <user>

登出並使用用戶再次登入...

crontab ~/admin/scripts/crontab.txt

crontab -l

0 */1 * * * ~/admin/scripts/elasticsearch_flush.sh > /dev/null 2>&1

相關內容