【Mac OS】Mac部分目錄讀寫提示“Operation not permitted”解決
阿新 • • 發佈:2018-12-15
問題產生
今天在將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機制的開始,可以有效防止電腦遭受惡意程式的破壞。