定期检查macos权限完整性需聚焦三类:系统路径所有权(如/usr、/bin等应为root:wheel)、sip状态(csrutil status须返回enabled)、未受保护的全局可写目录(如/usr/local)及gatekeeper隔离与终端权限配置。

定期检查 macOS 权限完整性,关键不是“全盘扫描”,而是聚焦高风险路径、验证核心保护机制是否生效,并结合自动化脚本形成可重复的轻量检查习惯。重点看三类:系统路径所有权、SIP 是否启用、应用级权限是否被异常授予或缺失。
验证系统关键路径所有权
权限错乱常导致命令失效、偏好设置无法保存等隐性问题。需确认 /usr、/bin、/sbin、/etc 等路径所有者为 root、组为 wheel:
- 终端运行:ls -ld /usr /bin /sbin /etc,正常应显示
drwxr-xr-x root wheel - 若发现所有者是 staff 或普通用户名,立即修复:sudo chown -R root:wheel /usr /bin /sbin
- /etc 特别敏感,权限不应开放写入(如不能是
drwxrwxr-x),否则可能被注入恶意配置
确认系统完整性保护(SIP)状态
SIP 是 macOS 权限安全的底层防线,关闭后任何 root 操作都可随意修改受保护目录:
- 终端直接执行:csrutil status,返回
enabled才表示有效启用 - 也可通过「苹果菜单 → 按住 Option 键 → 系统信息 → 软件」查看图形化状态,结果一致
- 注意:SIP 不影响 /Applications、/usr/local 等路径,这些需单独检查权限和签名
筛查未受 SIP 保护的全局可写目录
攻击者常利用这类目录植入恶意脚本或劫持命令。重点查 /usr/local 及自定义安装路径:
- 运行:find /usr/local -type d -perm -2 2>/dev/null | head -10,列出组或全局可写的目录
- 对结果中非 Apple 官方安装的目录,检查其权限与所属组,建议设为
drwxr-xr-x root:wheel - 用 ls -lOd /path/to/dir 查看是否含
restricted或compressed属性,有则说明已受 SIP 保护,无需干预
检查 Gatekeeper 隔离与终端权限
很多“Permission denied”实际是安全策略拦截,而非传统文件权限问题:
- 对报错脚本,运行:ls -l@ script.sh,若含
com.apple.quarantine,执行 sudo xattr -d com.apple.quarantine script.sh - 确认 Terminal.app 已加入「系统设置 → 隐私与安全性 → 完全磁盘访问权限」,并重启终端生效
- 如需调用辅助功能(如自动化脚本),还需手动开启「辅助功能」权限











