必须在“隐私与安全性→辅助功能”中添加终端应用而非脚本本身;FDA权限需按需授予并及时清理残留;SIP仅限必要时临时关闭且须立即恢复;sudoers修改应最小化、可审计;Apple芯片Mac启动安全性默认“完整”最安全。
修改 macOS 系统底层权限设置(如辅助功能、完全磁盘访问、sudoers、SIP、启动安全性等)确实能提升定制性或满足开发需求,但每一步都直接触及系统安全边界。关键不是“能不能做”,而是“为什么做”和“做完后如何收口”。
辅助功能权限:只给终端,不给脚本本身
cliclick、自动化工具或 UI 脚本需要模拟操作,但 macOS 不允许直接授权命令行工具,而是要求授权其宿主——即 Terminal 或 iTerm。这意味着:
- 必须在“安全性与隐私 → 隐私 → 辅助功能”中添加的是终端应用,而非 cliclick 二进制文件
- 不要勾选任何第三方 GUI 应用(如 Alfred、Raycast)除非你明确知晓它调用了 Accessibility API
- 定期检查该列表,移除已卸载或不再使用的终端变体(比如旧版 iTerm2、VS Code 的 Integrated Terminal 若曾手动授权)
完全磁盘访问(FDA):按需授予,及时清理
远程登录(SSH)、某些备份工具、IDE 插件会触发 FDA 请求。但 FDA 是高危权限:
- 系统不会自动撤销权限,即使对应 App 已卸载,残留条目仍存在风险
- 不应为任意 shell 脚本或 Python 进程单独申请 FDA;应通过终端统一管理
- 若某工具频繁报错“缺少 FDA”,先确认是否真需访问所有用户数据——多数场景只需读写自身 sandbox 目录
SIP(系统完整性保护):关闭只为必要,开启必须及时
SIP 是 macOS 最核心的防护层,关闭后 /System、/usr、/bin 等路径可被任意修改:
- 关闭 SIP 仅限于安装内核扩展、调试驱动、或绕过签名验证等极少数场景
- 关闭后务必记录操作目的与时间,并在完成任务后立即重启进恢复模式执行 csrutil enable
- 切勿在 SIP 关闭状态下长期日常使用,尤其避免浏览网页或运行未验证软件
sudoers 与 root 权限:最小化 + 可审计
修改 sudoers 文件或启用 root 用户,等于开放系统最高控制权:
- 优先使用 /private/etc/sudoers.d/ 下的独立文件,而非直接编辑主 sudoers
- 避免写 ALL=(ALL) NOPASSWD: ALL 这类宽泛规则;应精确到命令路径与参数范围(如仅允许 brew upgrade)
- 每次修改后运行 sudo visudo -c 验证语法,防止锁死 sudo 功能
启动安全性策略:Apple 芯片 Mac 的硬隔离
在 M1/M2/M3 Mac 上,“完整安全性”是默认且推荐的状态:
- 除非明确需安装旧版 kext 或受 MDM 管理,否则不要降级为“降低安全性”
- 若必须降级,仅勾选实际需要的子选项(如“允许远程管理内核扩展”),不全选
- 更改后需重启生效,且该设置影响所有用户——不能仅对单个账户生效