[Mac] 編輯 crontab 時,出現 Operation not permitted 錯誤訊息
今天在 macOS Mojave 10.14.6 上,想編輯一下 cron job,
結果編輯完關閉 vim 儲存時,卻出現錯誤訊息,
無法將修改的東西寫入 crontab 中:
testuser@localhost ~ $ crontab -e crontab: installing new crontab crontab: tmp/tmp.30692: Operation not permitted crontab: edits left in /tmp/crontab.c5kQeAOIFC
查了一下,是因為 Mac 的保護機制,
必須要打開終端機的 Full Disk Access 權限才行~
方法 1:將終端機軟體加上 Full Disk Access 權限
打開 System Preferences > Security & Privacy > Full Disk Access,
結果看到我平常在用的終端機軟體 iTerm 早就在裡面了?
但我在 iTerm 裡執行 crontab -e 還是無法儲存的,
就算關閉重開 iTerm 也一樣…
於是先按減號將 iTerm 移除,並關閉 System Preferences 確保它有儲存下來:
接著重新進入 System Preferences,把 iTerm.app 加進 Full Disk Access 裡面,
並同時關閉 iTerm,因為重開時才會有對應的權限:
重開之後,再執行 crontab -e,
就可以成功儲存了:
testuser@localhost ~ $ crontab -e crontab: installing new crontab
方法 2:使用 SSH
這是一個比較怪的方法,可是不需要改設定,也不需要管理者權限。
因為 sshd 本來就已經被賦與 Full Disk Access 的權限,
所以我們可以 ssh 本機,用原本的帳號登入:
ssh localhost
之後,執行 crontab -e 也是可以正常儲存,沒有問題囉~
參考資料:mac osx – OSX mojave: “crontab: tmp/tmp.X: Operation not permitted” – Server Fault
(本頁面已被瀏覽過 1,336 次)