標籤:

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 |