Mac OS X 10.11 sudo 指令出問題了么?
各位好,我今天把 Mac 升級了 OS x 10.11 ,然後突然發現,之前用 Vim 寫的 Python 程序沒有高亮了,然後我就重新編輯配置文件,使用終端指令 sudo vim /usr/share/vim/vim73/syntax/python.vim ,但是仍然是提示 readonly ,沒有許可權,沒法保存文件
後來我試著做一些其他操作,比如
sudo cp -r /usr/share/vim/vim73/syntax/python.vim python.vim.bak但是提示 Operation not permitted我試過 sudo -s ,也是不行
各位有沒有遇到過這種情況啊? 是升級了系統之後的問題嗎?
瀉藥,OS X El Capitan中,在內核下引入了Rootless機制,以下路徑:
/System
/bin/sbin/usr (except /usr/local)均屬於Rootless範圍,即使root用戶無法對此目錄有寫和執行許可權,只有Apple以及Apple授權簽名的軟體(包括命令行工具)可以修改此目錄。
要麼思考你這個操作的意義之後,使用其他方式完成你的操作
比如你要改vim的配置,請放在~/.vim/中,而不是/usr/share這種全局路徑要麼關閉Rootless(非開發者一般不推薦,或者建議執行後再次開啟)
附關閉方法:重啟,開機按住Command + R,以Recovery分區啟動,然後選擇以下方式:圖形化操作
在Security Configuration中關閉Enforce System Integrity Protection
命令行操作
csrutil disable
重啟,開機按住cmmand+r
按照上圖輸入命令csrutil disable,reboot
嘗試刪除 /usr/bin下面的目錄:
sudo rm -rf /usr/bin/php
done!
sudo nvram boot-args="rootless=1" +重啟
蘋果稱之為SIP(System Integrity Protection), 可以在這裡看到官方的介紹:Security and Your Apps
補充下,可以選擇性enable,比如取消filesystem protection, 取消debugging(useful for XtraFinder)。參考:osx - How do I disable System Integrity Protection (SIP) AKA "rootless" on OS X 10.11, El Capitan?
關閉Rootless許可權的方法
1、開機按住Command + R鍵,讓電腦進入恢復模式
2、打開終端,在終端中鍵入:csrutil disable 並回車
3、重新啟動電腦進入普通模式即可。
親測有效
為什麼不把配置放 $HOME
Rootless,在設置中關掉就行了
推薦閱讀:
※Mac OS X 下如何整理頂部菜單欄圖標?
※mac上用eclipse開發是一種什麼樣的體驗?
※為什麼 OS X 用戶不多,但是軟體的用戶體驗卻比 Windows 上的好出很多?
※如何評價 macOS Sierra 增加 Siri 功能?
※Mac上最好的下載網頁視頻的工具是什麼?
TAG:macOS |