crontab:“臨時 crontab 不再屬於您。”

crontab:“臨時 crontab 不再屬於您。”

我從 Linuxmint 18 Cinnamon 64 位元恢復到 Linuxmint 17.3 Cinnamon 64 位,並且無法再建立 cron 作業。我有單獨的 root (/) 和 home (/home/my-user-name) 分割區,並且在安裝 17.3 時保持 home 分割區不變。

我在創建 cron 作業時遇到了各種困難,因此我安裝了 gnome-scheduler 並嘗試以這種方式建立 cron 作業。我收到一個標題為的警告對話框

“警告:已執行任務的工作目錄”

訊息內容是

“關於執行任務的工作目錄的注意事項:循環任務將從主目錄運行。”

我單擊“確定”,作業顯示在終端機中,如下所示:

$ crontab -l
* * * * * env DISPLAY=:0 /home/my-user-name/wallpaper_changer.sh >/dev/null 2>&1 # JOB_ID_4

我的壁紙並沒有按應有的那樣每分鐘都在變化。該腳本從命令行運行得很好並且不產生任何輸出。該腳本的權限為八進位 744。這一切在 Mint 18 下運作良好,但我讓腳本每天只運行一次。我將其設定為每分鐘運行一次,僅用於測試目的。

如果我嘗試正常的 cron 作業編輯方法,我得到

$ crontab -e
Temporary crontab no longer owned by you.
Error while editing crontab

然後我得到一個空的 Nano 緩衝區,而不​​是充滿註解行的普通 crontab 模板。當我嘗試將奈米緩衝區寫入檔案 /tmp/crontab.lmuwIe/crontab 時,我收到以下錯誤訊息:

[寫入 /tmp/lmuwIe/crontab 時發生錯誤:權限被拒絕]

最後,

$ ls -l /usr/bin/crontab
-rwsr-xr-x 1 root crontab 35984 Feb  9  2013 /usr/bin/crontab

我還能再建立 cron 作業嗎?

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

@Gilles 嗯,我已經取得了很大的進步。我透過重新安裝 cron 擺脫了所有奇怪的錯誤。現在一切都像我使用時一樣正常

$ crontab -e

除了我多年來使用的腳本無法運行。

但另一個腳本確實運行了;所以我迷路了。

這是我現在所擁有的:

$ crontab -l
* * * * * env DISPLAY=:0.0 /home/my-user-name/wallpaper_changer.sh
* * * * * date >> /home/my-user-name/crontest.txt

(我沒有包含 cron 作業之前的 20 多行註解。)

日期作業完全按照應有的方式運行,但壁紙_changer.sh 作業不執行任何操作。我已經使用這個方法很多年了,但現在不起作用了。該腳本在命令列中運行良好,並且在 cron 中運行良好。

$ ls -l /home/my-user-name/wallpaper_changer.sh
-rwxr-xr-x 1 my-user-name my-user-name 694 Jun  2 14:30 /home/my-user-name/wallpaper_changer.sh

$ echo $DISPLAY
:0.0

這是怎麼回事?

答案1

您需要編輯 crontab 二進位檔案的權限,並將其設定回全新安裝時的權限。

不工作權限:

ls -la /usr/bin/crontab
-rwsr-xr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

操作,以 root 身分或使用 sudo 執行:

chmod g+s /usr/bin/crontab
chmod u-s /usr/bin/crontab

工作權限:

ls -la /usr/bin/crontab
-rwxr-sr-x 1 root crontab 40264 Oct  7  2017 /usr/bin/crontab

取自全新的工作安裝,工作權限是在安裝過程中設定的。

不知道為什麼後來就變了。

答案2

$ sudo ls -la /var/spool/cron/crontabs
total 12
drwx-wx--T 2 root crontab      4096 Sep 25 03:23 .
drwxr-xr-x 5 root root         4096 Sep 23 00:05 ..
-rw------- 1 root my-user-name  188 Sep 25 03:23 my-user-name

的歸屬/var/spool/cron/crontabs/my-user-name是錯誤的。你應該是主人。這可以解釋為什麼 cron 無法覆蓋該檔案。此外,該文件通常會在crontab組中,但我認為這並不重要。

您可以透過運行來修復此問題

sudo chown my-user-name /var/spool/cron/crontabs/my-user-name

我不知道是什麼原因導致了這種情況,也不明白它與系統降級有何關係。根本問題可能會導致其他問題。

相關內容