注意:SIP 功能是 Apple 在Mac OS X 上推出的系统完整性保护功能,对于普通 MAC 用户来说是一项安全保护功能,如果不了解他的作用请不要随意关闭,对于开发者来说,因为会使用到很多的第三方辅助工具( 例如:Cocoapods、Homebrew ),而这些工具可能会修改系统目录,在这些工具未推出适应 Mac OS X 10.11 的版本时,或者自己需要删除某些系统程序( 十分不建议删除 ),有必要临时关闭 SIP 以确保开发工具的使用。

建议:普通用户随意,开发者目前请谨慎升级,如果你已经升级,相信你可能需要恶心一阵了,因为有些工具没有更新不能正常使用或部分功能失效,甚至在关闭SIP后也有点问题,当然你只要耐心等待软件更新和网友的智慧或是自己动手丰衣足食,很多问题还是可以解决的。

进入 Recovery HD

笔记本的话开机按住 Option 键在出现的启动选择菜单中选择 RecoveryHD 进入恢复模式

其他的话将 Mac 开机,然后立即在键盘上按住 Command (⌘)-R 继续按住这些键,直到看到 Apple 标志或旋转的地球。

使用csrutil命令

打开终端Terminal,键入 csrutil 可以显示该命令的使用方法

usage: csrutil <command>
Modify the System Integrity Protection configuration. All configuration changes apply to the entire machine.
Available commands:

    clear
        Clear the existing configuration. Only available in Recovery OS.
    disable
        Disable the protection on the machine. Only available in Recovery OS.
    enable
        Enable the protection on the machine. Only available in Recovery OS.
    status
        Display the current configuration.

    netboot
        add <address>
            Insert a new IPv4 address in the list of allowed NetBoot sources.
        list
            Print 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状态

常用参数进阶

除了可以完全关闭/打开,还可以进行单项和多项组合关闭相关功能,用法如下

csrutil enable [--without kext|fs|debug|dtrace|nvram] [--no-internal]

单项使用:

sudo csrutil enable –without fs:Filesystem Protections disable
sudo csrutil enable –without kext:Kext Signing disable
sudo csrutil enable –without debug:Debugging Restrictions disable
sudo csrutil enable –without nvram:NVRAM Protections disable
sudo csrutil enable –without dtrace:DTrace Restrictions disable

组合使用:

sudo csrutil enable –without kext –without fs:Filesystem Protections and Kext Signing are disabled