Apple已在OS X 10.11 El Capitan中引入了系統完整性保護,也稱為“無根”。我知道這是對惡意軟件進行一般保護的步驟,但是作為開發人員,我需要對其鎖定的某些文件具有寫訪問權。
如何禁用此保護?
Apple已在OS X 10.11 El Capitan中引入了系統完整性保護,也稱為“無根”。我知道這是對惡意軟件進行一般保護的步驟,但是作為開發人員,我需要對其鎖定的某些文件具有寫訪問權。
如何禁用此保護?
Apple的文檔涵蓋了禁用SIP,關於Mac上的系統完整性保護和配置系統完整性保護。
關於lifehacker的文章.com列出了以下步驟:
- 通過重新啟動計算機並按住 Command kbd> + R ,直到Apple徽標出現在屏幕上。
- 單擊“實用程序”>“終端”。
- 在“終端”窗口中,鍵入
csrutil disable
,然後按輸入 kbd>。- 重新啟動Mac。
ol>
您可以通過發出以下來驗證文件或文件夾是否受到限制ls
命令使用大寫字母O(而不是零0)來修改長列表標誌:
ls -lO / System / usr
查找受限文本以指示在何處實施SIP。
默認情況下(= SIP已啟用),以下文件夾受到限制(請參閱 Apple支持頁面):
/ System / usr / bin預先裝有OS X
...的/ sbinApps和以下文件夾是免費的:
/ Applications / Library / usr / local
可以通過引導到 Recovery HD 並運行以下命令來禁用SIP:
csrutil disable
通過向 csrutil enable
命令添加一個或多個標誌,也可以啟用SIP保護並有選擇地禁用其某些方面。所有這些都需要從Recovery中啟動才能進行設置:
啟用SIP並允許安裝未簽名的內核擴展
csrutil enable --without kext
啟用SIP並禁用文件系統保護
csrutil enable --without fs
啟用SIP並禁用調試限制
csrutil enable-無需調試
啟用SIP並禁用DTrace限制
csrutil enable-無dtrace
啟用SIP並禁用寫入NVRAM的限制
csrutil enable –without nvram
我也有一個帖子,提供有關SIP的更多信息:
如果目標是實際上只是禁用系統完整性保護,則按照其他答案此處先前建議的方式通過啟動時的 Command kbd> + r kbd>引導到Recovery HD分區,not最快的方法。
您可以將單用戶模式啟動與恢復高清啟動結合在一起,而沒有公開的啟動鍵組合:
這使您僅處於此direct所需的最低限度的最低環境中。
修改 / etc / paths
以便將 / usr / local / bin
放在 usr / bin
之前是比較安全的。這樣,您可以在 / usr / local / bin
中完成開發工作,而不必禁用SIP。
操作系統的干淨安裝已經以此方式訂購了 / etc / paths
,但是,如果要從優勝美地或更早的版本升級操作系統,則必須手動修改路徑順序。
如果僅需要訪問/ usr / local,請看此頁面: http://web.archive.org/web/20160117204214/https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/El_Capitan_and_Homebrew.md
該想法是使用 csrutil disable
臨時 禁用SIP,添加 / usr / local
,使用chflags將目錄設置為非限制
sudo mkdir / usr / local && sudo chflags norestricted / usr / local && sudo chown-R $ {whoami):admin / usr / local
,然後使用 csrutil enable
重新啟用SIP。
如果 / usr / local
在升級時已經存在,因此甚至不需要上述操作。您可以簡單地運行
sudo chown -R $(whoami):admin / usr / local
如果您無法進入恢復分區來運行 csrutil disable
(以禁用 SIP),請嘗試使用設置引導參數> nvram
命令,例如
sudo nvram boot-args =“ rootless = 0”
但是,如果您遇到以下錯誤:
nvram:錯誤設置變量-'boot-args':(iokit / common)不允許
然後它將不起作用。您仍然需要啟動它的恢復/安全模式。
請參閱: