如何关闭OSX 10.11 SIP (System Integrity Protection)
2015.10.8 01:50更新:实在忍不住,看完池老师的公众号,就升级了。问题果然是有的,池老师你还我睡眠时间,又整到凌晨……
- 关于Homebrew的安装参考链接
- Cocoapods使用这个命令安装sudo gem install -n /usr/local/bin cocoapods原因是原来使用的/usr/bin这个目录被rootless保护了,那个-n参数作用是把二进制文件安装到指定目录,参考stackoverflow解决Cocoapods无法安装 注意stackoverflow中提到的使用这个参数「rootless=0」就不要用了,该方法apple官方已经封了,要停用rootless就用我下述的方法(也是官方推荐方法)
- ……暂时就这些,有问题在更新,或者留言给我你的问题,我看看能不能解决
注意:SIP功能是Apple在OSX上推出的系统完整性保护功能,对于普通MAC用户来说是一项安全保护功能,如果不了解他的作用请不要随意关闭,对于开发者来说,因为会使用到很多的第三方辅助工具(例如:Cocoapods、Homebrew),而这些工具可能会修改系统目录,在这些工具未推出适应OSX 10.11的版本时,有必要临时关闭SIP以确保开发工具的使用。
建议:普通用户随意,开发者目前请谨慎升级,如果你已经升级,相信你可能需要恶心一阵了,因为有些工具没有更新不能正常使用或部分功能失效,甚至在关闭SIP后也有点问题,当然你只要耐心等待软件更新和网友的智慧或是自己动手丰衣足食,很多问题还是可以解决的。
进入RecoveryHD
开机按住Option
键在出现的启动选择菜单中选择RecoveryHD
进入恢复模式使用csrutil命令
打开终端Terminal,键入csrutil
可以显示该命令的使用方法1234567891011121314151617181920usage: csrutil <command>Modify the System Integrity Protection configuration. All configuration changes apply to the entire machine.Available commands:clearClear the existing configuration. Only available in Recovery OS.disableDisable the protection on the machine. Only available in Recovery OS.enableEnable the protection on the machine. Only available in Recovery OS.statusDisplay the current configuration.netbootadd <address>Insert a new IPv4 address in the list of allowed NetBoot sources.listPrint the list of allowed NetBoot sources.remove <address>Remove an IPv4 address from the list of allowed NetBoot sources.可以看到在正常系统模式下中仅可以用status命令查询SIP状态
常用参数
- clear:清除配置设置,等同于完全开启SIP(
仅在恢复模式下有效
) - disable:关闭SIP(
仅在恢复模式下有效
) - enable:开启SIP(
仅在恢复模式下有效
) - status:查询SIP状态
- clear:清除配置设置,等同于完全开启SIP(
常用参数进阶
除了可以完全关闭/打开,还可以进行单项和多项组合关闭相关功能,用法如下1csrutil enable [--without kext|fs|debug|dtrace|nvram] [--no-internal]单项使用:
12345sudo csrutil enable –without fs:Filesystem Protections disablesudo csrutil enable –without kext:Kext Signing disablesudo csrutil enable –without debug:Debugging Restrictions disablesudo csrutil enable –without nvram:NVRAM Protections disablesudo csrutil enable –without dtrace:DTrace Restrictions disable组合使用:
1sudo csrutil enable –without kext –without fs:Filesystem Protections and Kext Signing are disabled
更多详情请参考:
可丁丹尼@一路往前走2.0
csrutil updated in DP7
SIP/Rootless Internal in El Capitan