[Mac] macOS Catalina 上的 cron job 遇到 Operation not permitted 錯誤

[Mac] macOS Catalina 上的 cron job 遇到 Operation not permitted 錯誤

升級到 macOS Catalina 之後,

發現之前設定的 cron job,似乎沒能成功執行。

這是我寫在 root 帳號下的 cron job:

$ sudo crontab -l

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

#MIN HOUR DAY MONTH DAYOFWEEK   COMMAND
*/5 * * * * /Users/testuser/reset_desktop_symbolic_link.sh > /tmp/reset_desktop_symbolic_link.log 2>&1

 

這裡面的 reset_desktop_symbolic_link.sh 會去把 ~/Desktop 目錄,

改成用 symbolic link 指向我放在 Dropbox 下的一個目錄,

方便我把桌面上的東西都留在 Dropbox 上。

 

以前這個 cron job 運作正常,

但升上 Catalina 後,就發現它該做的事都沒有做。

檢查了一下我讓它寫的 /tmp/reset_desktop_symbolic_link.log,

發現裡面有 Operation not permitted 錯誤:

rm: Desktop: Operation not permitted
ln: .//Desktop: Operation not permitted

 

看起來是以前 root 有權限做的事,現在在 Catalina 裡面沒權限做了~

查了一下,要解決這個問題,得讓 cron 擁有 Full Disk Access 的權限才行。

打開 System Preferences > Security & Privacy > Full Disk Access,

可以發現它裡面確實沒有 cron:

 

打開 Finder > Go > Go to Folder,輸入 /usr/sbin/cron,

讓 Finder 打開這個目錄:

 

在這目錄下,找到 cron 這個執行檔,

把它拖到 Full Disk Access 的項目內:

 

噹噹~這樣就完成了。

等待 cron job 下次執行,果然它就運作正常,記錄檔裡也沒有出現錯誤囉~

 

參考資料:How to Fix Cron Permission Issues in MacOS Catalina & Mojave

(本頁面已被瀏覽過 1,401 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料