主要观点:介绍了 macOS 中的 TCC(Transparency, Consent and Control)及其相关内容,包括其负责管理用户允许应用访问的资源,以及与平台沙箱策略的关系等。
关键信息:
- TCC 是 macOS 的一个子系统,用于管理应用对敏感资源的访问权限,如硬件设备、位置服务等。
- 平台沙箱策略是应用于 macOS 所有进程的策略,实现了 System Integrity Protection 的一部分,可通过
(with user-approval …)
触发 TCC 提示。 (with user-approval …)
中的allow
动作可附加特定类型的用户批准,触发sandboxd
向tccd
请求 TCC 批准。- 以访问计算机摄像头为例,说明了平台沙箱策略中关于
iokit-open-user-client
操作的政策会触发 TCC 提示。 - 平台沙箱策略中的关键概念是文件系统对象的“存储类”,用于分类文件系统对象并确定是否触发 TCC 提示。
重要细节: - TCC 权限由
tccd
进程调解,系统框架使用私有 API 确定是否有权访问资源。 - 平台沙箱策略利用沙箱内核扩展触发 TCC 提示,对不同的文件系统操作和对象有相应的政策和存储类定义。
- 列举了多个存储类的示例,如
kTCCServiceSystemPolicyNetworkVolumes
、kTCCServiceSystemPolicyAppBundles
等,以及它们对应的文件系统路径或属性条件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。