Rootless
Mac OS X 10.11+ (El Capitan) 以后,引入了 Rootless 安全機制,該機制限制了 root 用戶的權(quán)限,有部分操作即使是 root 也無法執(zhí)行。
該機制的詳細介紹,請參考:
Wikipedia: System Integrity Protection
Apple: System Integrity Protection Guide
主要地限制有:
- 以下目錄無法修改:
/System, /bin, /sbin, 或者 /usr (/usr/local 除外)鸳君,以及內(nèi)置 App 和系統(tǒng)工具 Utilities。
具體的限制名單在 /System/Library/Sandbox/rootless.conf 文件中有定義患蹂,該文件行首的 * 表示該行記錄不在限制之列 - 無法追蹤調(diào)試系統(tǒng)進程
- 無法加載未經(jīng)驗證的內(nèi)核擴展
可能引起的問題和解決方案
- 修改受限制的文件或文件夾
sudo cp -f FILE /usr/bin/
# 報錯: cp: /usr/bin/FILE: Operation not permitted
解決方案:關(guān)閉 rootless或颊,見下文
- 執(zhí)行部分命令受挫
sudo gem install posix-spawn -v '0.3.11'
# 報錯:
Building native extensions. This could take a while...
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/posix-spawn-benchmark
解決方案:嘗試執(zhí)行 /usr/local/bin 里命令,或?qū)⒚钗募?fù)制到 /usr/local/bin 后再執(zhí)行况脆,例如
sudo gem install -n /usr/local/bin GEM-NAME
關(guān)閉 rootless
如果遇到的問題難以解決饭宾,也可以關(guān)閉 rootless 功能,徹底解決引起的權(quán)限問題格了,但是關(guān)閉 rootless 將會嚴(yán)重降低系統(tǒng)安全性看铆,必須盡快重新開啟。
關(guān)閉的步驟如下:
- 重啟 Mac 并按住 Command+R盛末,進入恢復(fù)模式
- 打開終端 Terminal
- csrutil disable
開啟的步驟:
- 重啟 Mac 并按住 Command+R弹惦,進入恢復(fù)模式
- 打開終端 Terminal
- csrutil enable
在 mac 終端直接鍵入 csrutil 可查看該命令的使用說明。