Full Disk Access:备份软件的例外,成了代理的总闸
Apple 在开发者新闻里说,Full Disk Access 本是为备份软件绕开隐私控制的例外,AI 代理让它的风险大幅上升,今后授予须经「非常明确的用户动作」。没有日期、没有机制。它加重的是同意的力度,没有收窄同意的范围。
Inc. 的专栏作者 Jason Aten 收到一条 Muse 发来的通知,内容提到他和一位同事在 Apple Messages 里的一段对话。他说自己从没让 Muse 读消息。Meta 的回应很快,也很工整:Mac 版 Muse 读 Messages 是 opt-in,要同时打开系统级的 Full Disk Access 和应用里的 Messages connector,缺一不可。David Singleton 在 Threads 上补了一句更硬的:这是三步应用级授权加 macOS 系统级保护,即使 Muse 有 bug 也绕不过去。
大约两周后,Apple 在开发者新闻页发了一条短通知,标题是 Updates to Full Disk Access in macOS,页面日期 2026 年 10 月 2 日。全文两段,没有点任何公司的名字。第一段的意思是:Full Disk Access 之所以存在,是为了让备份软件在 Mac 上正常工作,它 largely sidesteps 那套保护私人数据的控制;有些开发者在用户并不完全知情和理解的情况下,借它暴露了系统上的一切,文件、邮件、消息,甚至浏览记录。第二段说,今后要加控制,让真想授予这种 extraordinary level of access 的用户,只能通过 very explicit user action 完成;随着 AI 代理越来越能干、越来越自主,这种权限的风险会 grow substantially。
TL;DR:一个为备份软件开的例外,在代理时代变成了总闸。Apple 这次加重的是「同意」的力度,没有收窄「同意」的范围,也没有给出日期和机制。它真正承认的一件事是:在桌面上,能被用户核验的边界只剩操作系统这一层。
例外是给「搬字节」的程序开的
备份软件要读全盘,理由很朴素。它不需要理解你的消息说了什么,只需要把字节原样搬到另一块盘上。Full Disk Access 的设计假设,是持有它的程序只搬不读,至少不读出意思来。这个假设在过去几年已经松了。Macworld 的编辑列了他自己 Mac 上要这项权限的软件:Adobe Creative Cloud 的更新器、罗技的键鼠管理工具、Microsoft OneDrive。例外早就不只给备份用,只是用的人多半也不读内容。
代理把这个假设翻了过来。它读全盘,正是为了读出意思,然后据此行动,往往还要把读到的东西送进云端模型。macOS 安全研究者 Patrick Wardle 对 Ars Technica 说得很直白:有了 FDA,任何非 root 的文件都可读,浏览记录、浏览器 cookie、聊天记录,等等。权限还是那一个开关,开关背后的程序已经从搬运工变成了读者,而且是一个会自己决定下一步做什么的读者。
Apple 通知里最容易被跳过的一句,是关于通信软件的:这还可能损害用户在与之通信的那些人的隐私。Aten 那段对话里的同事,从头到尾没有点过任何开关。本机用户可以为自己的数据同意,却在同一个动作里替对话另一端的人做了决定。FDA 的同意模型里没有这些人的位置,它也很难有。这不是 Muse 一家的问题,是所有要读通信记录的代理都会撞上的结构。
更明确的同意,仍是同一个范围
Meta 的辩护和 Apple 的通知,放在一起读,有一处很刺眼。Singleton 描述的授权流程,本身已经相当「明确」:先在 Muse 里选择授予 FDA,系统设置的界面会被拉起来,用户要在那里手动再确认一次,之后 Muse 整个重启;Messages 的读取级别在 FDA 打开之前是灰的。如果这都不算 very explicit,Apple 要加的大概不是多一次点击,而是让用户在点之前真的明白自己交出去的是什么。TechCrunch 发稿后加了一条更正,说原文把这次变化写成「限制权限」是编辑错误,作者的本意是:这关乎知情同意,不是新的限制。
这条更正比标题更准确。按目前公开的文字,变的是授予那一刻的力度,不是授予之后的范围。FDA 仍是全有或全无。Muse 的 Messages connector 是在系统的「全有」之上,由应用自己再画的一道线。这两道线的性质完全不同。
flowchart TD
U[用户] -->|系统设置里手动打开| FDA["Full Disk Access<br/>操作系统执行 · 全有或全无"]
FDA --> C["应用内 connector / 读取级别<br/>厂商代码执行 · 用户无法核验"]
C --> A[代理读取文件、消息、浏览记录]
A --> M[云端模型理解并决定下一步]
M --> X[通知、回复、跨应用动作]
O["同机其他代码<br/>(Wardle 披露的配置问题)"] -.->|劫持代理| A
P[对话另一端的人] -.->|从未参与同意| A
第一道线由操作系统执行,用户在系统设置里看得见、关得掉。第二道线由厂商代码执行,用户能看到的只是一个开关的图标。「即使应用有 bug 也绕不过去」这句话,如果成立,靠的也是第一道线。一旦第一道线打开,第二道线就是承诺,不是边界。Wardle 问的正是这一点;Ars 去问 Meta,为什么别的拿到 FDA 的应用都能读消息,Muse 却不能,得到的回复是把 Singleton 的原话再引一遍。
还有一条侧线。Ars 提到,Apple 发通知的 11 天前,Wardle 披露过 Muse 的一处配置问题:Mac 上任何应用或代码,包括经 ClickFix 一类手法注入的命令,都可能完全接管这个助手,进而拿到它能碰的一切资源。权限给了代理,代理就成了一个更大的攻击面。用户同意的是「让这个助手读」,没有同意「让能指挥这个助手的任何东西读」。授权时的仪式再郑重,也覆盖不到这一段。
控制点在下沉,但这一层只管门口
把这条和本站最近几篇放在一起,方向是一致的。OpenAI 的 Dots 把代理放进自己的云电脑,人不在时的主动研究被收成只读,改密码和转账留给人,闸由产品自己的分类画。NVIDIA 把 OpenShell 的策略放到代理进程外面,再把带外停机放到 BlueField-4 上。Apple 这次是另一侧:代理跑在用户自己的机器上,那就由操作系统决定它能拿到什么。三件事说的都是同一句话,模型嘴里的拒绝和应用里的开关不够,控制得放在代理改不动的那一层。
flowchart LR
subgraph soft["代理改得动"]
P1[模型政策与拒答] --- P2[应用内开关与 connector]
end
subgraph hard["代理改不动"]
P3["运行时边界<br/>OpenShell / Dots 云电脑"] --- P4["操作系统权限<br/>TCC · Full Disk Access"] --- P5["硬件带外<br/>BlueField-4 Sentry"]
end
P2 --> P3
区别在时间轴上。NVIDIA 的 Sentry 说的是运行时,动作越线就停。Dots 的帮助中心至少写了「一次同意不自动变成长期许可」。FDA 是授予时的一次性决定,没有到期,没有按任务收窄,也不区分「这一次去读日历」和「永远可以读一切」。常驻代理恰恰把授予时和使用时拉得很远:你在某个下午为了一个具体用途打开开关,代理在之后的几周里,在你不在场的时候,按它自己的判断读。门口的同意做得再隆重,门里发生的事它仍然看不见。
所以我对这条通知的判断是:方向对,层级对,时机晚,形态还停在上一代。macOS 的 TCC 框架本来就是按类别逐项授权的,日历、通讯录、照片、屏幕录制各有各的开关。FDA 是这套框架里那个「以上全部」的口子。代理需要的,恰好是比现有类别更细、而且带时限的东西;Apple 目前只承诺把那个口子的门槛抬高。
谁来付这次收紧的成本
Apple 没有说控制长什么样。Macworld 猜第一步可能只是更严厉的提示文案,这只是猜测。无论哪种形态,成本的分布大致可以预见。备份软件和那些「顺手」要了 FDA 的更新器、外设工具,会和代理一起多走一道流程,尽管出问题的并不是它们。代理厂商被推向两条路:要么用 Apple 那套带控制的分类 API 一项项申请,要么接受全盘权限的门槛变高、转化率变低。用户多了一层更郑重的对话框。郑重的对话框见多了,也会变成另一种被习惯性点掉的东西。
还有一个结构问题,通知没有碰。权限的守门人也是平台本身。当操作系统厂商决定第三方代理在桌面上能拿到多少,它同时也在决定自己的系统级功能和第三方相比站在什么位置。我没有看到 Apple 就此说过什么,这里只记一个开放问题:「保护用户」和「保护平台位置」在这类决定里会长期纠缠在一起,外人很难从一条两段话的通知里把它们分开。
这次通知也没有裁决 Aten 和 Meta 之间的争执。Aten 说事发时 FDA 是关着的,他问 Muse 怎么回事,Muse 说是在同步他的「device notifications」,他据此推测是 Mac 上的通知横幅文本被转给了代理。Singleton 说那是 AI 自己搞糊涂了,给了错误解释。两种说法如果前者对,泄露路径就不经过 FDA,收紧 FDA 也堵不上它;如果后者对,是用户在不完全理解的情况下打开了全盘权限,Apple 的新控制正对症。Apple 的措辞「without users’ full knowledge and understanding」更像在支持第二种读法,但它没有点名,也没有给技术细节。代理连自己为什么知道一件事都可能讲错,这本身就是一条信息:事后问代理「你从哪知道的」,不是可靠的审计手段。
应用不再只做一件事
桌面权限模型有一个很少被说出口的前提:应用安装时就知道自己要做什么。照片编辑器要照片,日历同步要日历,备份要全盘。权限对话框问的是「你需要什么」,而应用在安装那一刻答得上来。
代理答不上来。本站写 Grok 4.6 时说过,长程代理把评估的单位从一道题换成了一段过程;权限的单位其实也该跟着换。它要做的事是在运行时、按用户临时的一句话、甚至按它自己的推断决定的。今天读日历,明天翻消息,后天打开浏览器去下单。问它「你需要什么」,诚实的回答只能是「看情况」,于是它要了那个「以上全部」。Apple 这次把那个口子收紧一点,是在旧的问法里提高回答的代价。下一步要换的是问法本身:权限跟着任务走,而不是跟着应用走,有范围、有期限、能事后查。Apple 没有承诺这些。但当一家操作系统厂商在公开文字里把 AI agents 写成收紧权限的理由时,它已经承认,自己不再只是给程序分配资源的那一层,也成了替用户确认意图的那一层。这份工作,原来的对话框做不了。
参考
- Apple Developer News:Updates to Full Disk Access in macOS
- The Verge:Apple will limit Mac disk access as AI agents ‘substantially’ increase risk
- Ars Technica:Apple changes full-disk access permissions to curb abuse from AI agents
- TechCrunch:Apple says it’s tightening macOS ‘Full Disk Access’ controls(含更正)
- TechCrunch:Meta disputes claim that Muse read a user’s private messages
- Macworld:Apple tightens macOS Full Disk Access controls as AI agents proliferate
- 本站:Dots,人可以离开,研究还在后台读
- 本站:看门狗在 DPU 上,开源边界不必
- 本站:Grok 4.6 与长任务