[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 次)