1. 程式人生 > >【Mac OS】Mac部分目錄讀寫提示“Operation not permitted”解決

【Mac OS】Mac部分目錄讀寫提示“Operation not permitted”解決

問題產生

今天在將mac預設安裝的python2.7升級為python3時,終端執行:

sudo mv /usr/bin/python /usr/bin/python_old

提示“Operation not permitted”,操作不成功。

問題分析

筆者在此前一天剛把Ubuntu 18.04 LTS的Python2升級為Python3,同樣的方法並未提示操作不成功。故而推測可能是Mac在系統層面對某些目錄增加了保護機制,即使root許可權使用者也不可讀寫。

問題解決

查閱資料,發現是Mac OSX 系統中有一項Rootless機制,即使在root許可權下也不能所以讀寫某些特定路徑的檔案。Rootless可以有效防止惡意程式對電腦的破壞,平時建議保持開啟狀態。 為了實現上述目的,我們選擇手動關閉Rootless,在升級完Python之後再將其開啟。

關閉Rootless

重啟電腦,按住Command+R進入恢復模式,點選選單開啟Terminal,輸入:

csrutil disable

重啟電腦即可。

開啟Rootless

同樣進入恢復模式,輸入:

csrutil enable

如上所說,建議平時保持Rootless機制的開始,可以有效防止電腦遭受惡意程式的破壞。