macOS无统一底层软件授权终端接口,权限分散于TCC、Gatekeeper、ACL及特殊权限组;TCC仅支持tccutil list查看和tccutil reset重置,无法精细设允许;Gatekeeper用spctl开关全局策略;辅助功能与全盘访问等不可终端授予。
macos 没有“所有底层软件授权项”的统一终端管理接口。所谓“底层授权”,实际分散在多个互不兼容的系统机制中:tcc(隐私权限)、gatekeeper(安装签名验证)、文件系统 acl、辅助功能/全盘访问等特殊权限组,各自独立存储、验证和生效。无法用一条命令或一个工具覆盖全部。
TCC 隐私权限(相机、通讯录、定位等)可有限终端管理
这是最常被误认为“底层授权”的部分,但仅支持查看与重置,不支持精细增删或设为“允许”:
查看当前记录的授权条目(macOS 13+):
tccutil list重置某类权限(如清空所有 App 对麦克风的授权):
tccutil reset Microphone重置全部 TCC 权限(会丢失所有手动选择):
tccutil reset All
⚠️ 注意:tccutil list 显示的是数据库缓存记录,不反映实时开关状态;像 FullDiskAccess、ScreenCapture 等高权限项在 macOS 14+ 中默认不显示在列表中,也无法通过 tccutil 单独设为“允许”。
Gatekeeper 安装来源策略(控制能否运行未签名软件)
这不是“软件授权”,而是系统级安装策略,终端可开关全局模式:
启用“任何来源”(让系统设置中出现该选项):
sudo spctl --master-disable恢复默认限制(推荐安装完第三方软件后执行):
sudo spctl --master-enable
该命令不修改具体 App 的状态,只改变 Gatekeeper 的检查宽松度。
辅助功能、全盘访问等特殊权限不可终端授予
这些权限由系统守护进程实时校验,不存于 TCC.db,也不响应 tccutil 或 defaults 命令。例如:
- 辅助功能权限需 App 主动请求 + 用户点击“打开系统设置 → 辅助功能 → + 添加”;
- 全盘访问必须在“隐私与安全性 → 完整磁盘访问”中手动勾选,无终端写入路径(SIP 保护下
/Library/Application Support/com.apple.TCC/数据库已加密或内存映射,sqlite3直接写入在 macOS 14+ 失效且风险极高)。
单个应用临时放行(不改系统设置)
适用于只想运行一次的可信软件,无需开启全局权限:
- 右键点击
.app→ “打开” → 点“打开”按钮(系统自动记录信任);
或 - 清除隔离属性(移除下载标记):
xattr -d com.apple.quarantine /Applications/YourApp.app
不复杂但容易忽略


















