sip不支持用户自定义策略,其保护规则由苹果硬编码于内核,仅可通过csrutil开关或审计模式调整,rootless.conf不可编辑,细粒度例外仅限苹果签名组件。

macOS 系统完整性保护(SIP)本身不提供用户可配置的自定义策略机制。它是一套由苹果预设、硬编码在内核中的保护规则,所有启用 SIP 的系统都遵循同一套保护逻辑——包括受保护路径列表(如 /System、/usr、/bin)、进程行为限制(如禁止代码注入、DTrace 调试受限)以及内核扩展签名强制要求。
哪些部分看似可调,实则受限
用户常误以为可通过修改配置文件实现“自定义”,但实际情况如下:
-
rootless.conf 不是开放配置入口:该文件位于
/System/Library/Security/,仅用于系统内部标记默认保护项;它不可编辑,且修改后会被系统更新覆盖或校验失败导致启动异常。 -
csrutil 命令仅控制开关与模式:在恢复模式下可用的
csrutil工具只能启用/禁用 SIP,或设置为enable/disable/audit模式,无法指定“只保护 /usr/bin,放开 /sbin”这类细粒度策略。 -
Apple 签名是唯一例外通道:只有经过苹果官方签名并内置特权 entitlements(如
com.apple.rootless.processes)的系统组件(如软件更新、安装器),才能绕过 SIP 写入受保护路径——但这属于苹果内部发布流程,开发者和用户均无法自行申请或生成此类签名。
企业或开发者实际可用的替代方案
若需在 SIP 启用前提下实现特定部署或调试需求,应转向苹果支持的合规路径:
- 使用 /usr/local 或 /opt:这些路径明确排除在 SIP 保护之外,适合安装第三方工具链、脚本或自定义二进制文件。
- 通过系统扩展(System Extensions)替代内核扩展(KEXT):自 macOS Catalina 起,KEXT 已被弃用;系统扩展运行于用户空间,权限更细、无需禁用 SIP,且可通过 MDM 配置分发。
-
利用 LaunchDaemon + 安全启动策略:在搭载 Apple 芯片的 Mac 上,可通过配置启动安全性策略(如
full或medium)配合签名的 LaunchDaemon 实现可信后台服务,避免触碰 SIP 区域。
为什么没有真正意义上的自定义策略
苹果将 SIP 设计为“全有或全无”的安全基线,核心考量是:
- 防止因策略配置错误导致系统不稳定或引入攻击面;
- 确保不同设备间安全行为一致,便于漏洞响应与系统更新验证;
- 避免企业管理员或高级用户误操作削弱整体防护能力(例如,仅放开一个目录可能被恶意软件链式利用)。
因此,所谓“自定义”仅存在于苹果内部构建流程与企业级部署工具链中,普通用户和第三方开发者无法直接定义 SIP 的保护范围或例外规则。任何绕过 SIP 的尝试(如禁用后手动修改系统目录)都会破坏系统宗卷签名、失去自动更新支持,并显著降低设备安全性。











