在 Mac 上跑 AI 助理,数据会泄露吗?
每次有人问我”你在自己电脑上跑 AI 助理不怕数据泄露吗”,我都想翻白眼。
这个问题火起来是因为 OpenClaw 最近爆了,然后一堆科普文章跟着出来,异口同声地说:把 AI 跑在你电脑上 = 它能访问你所有数据 = 你的照片、聊天记录、密码全部暴露了 = 完蛋。
然后评论区就炸了。一群人说”太可怕了不敢用”,另一群人说”果然 AI 就是隐私杀手”。
我就说一句话:这帮人写的时候根本没动脑子想过 macOS 的权限模型是什么。
macOS 底下是 Darwin,Darwin 是 Unix 家族的。Unix 操作系统几十年来一直在用同一套权限模型:用户隔离。
这个概念极其简单:每个用户只能碰自己的文件。你的用户目录 /Users/你 下面的东西,别的用户碰不到,因为文件权限是 700——owner 可读写执行,group 和 others 啥也不行。
所以答案就很明确了:你建一个独立用户给 AI 跑,它就只能碰到那个用户有权限碰的东西。你不给它权限,它碰不到你的文件。就这么简单。
“跑在电脑上就能访问所有数据”这句话的前提是:你用你自己的用户账号来跑。你用 geyunfei 这个账号启动 OpenClaw,那它当然跟你有一样的权限——因为它就是以你的身份在运行。
这跟你雇了一个人然后把你电脑解锁了放在他面前一样。能怪人家看你文件吗?
我自己的做法,说一下具体操作。
用 sysadminctl 创建一个隐藏用户。隐藏的意思是它不会出现在登录界面上,你在系统偏好设置里也看不到它。但它是一个真实的 macOS 用户,有自己的 home 目录,有自己的权限边界。
sudo sysadminctl -addUser openclaw -fullName "OpenClaw" -password "随便设个强密码" -home /var/openclaw -shell /bin/zsh -admin
sudo dscl . create /Users/openclaw IsHidden 1
然后用 LaunchDaemon 让 OpenClaw 以这个用户的身份启动。LaunchDaemon 的 plist 文件里指定 UserName 为 openclaw,这样进程就会以 openclaw 用户的权限运行。
<key>UserName</key>
<string>openclaw</string>
它的 home 目录在 /var/openclaw,你的 home 目录在 /Users/你。两个目录互相看不到对方的内容。
如果你需要让 AI 访问某些特定文件——比如你想让它帮你管理某个项目的代码——你可以把那个目录的 group 权限给它开放,或者用 ACL 做更精细的控制。但核心原则是:你不主动给它的东西,它碰不到。
再配一下 visudo,只给它需要的 sudo 权限(如果有的话)。大部分情况下它根本不需要 sudo。
openclaw ALL=(ALL) NOPASSWD: /usr/bin/some_specific_command
只开你需要的。别给 ALL。
你看,整个操作没用 Docker,没用虚拟机,没有任何额外工具。就是 macOS 自带的用户管理 + Unix 文件权限。这套东西存在了几十年了,稳得一逼。
我现在三只龙虾(小虾、Ada、帮朋友建的那只)分别跑在三个不同的用户下面。互相之间看不到对方的文件,也看不到我个人的文件。我想让哪只龙虾碰到哪些东西,就手动给那些目录加个 ACL 权限。不给的就碰不到。
有人可能会问:那 AI 会不会自己提权?比如利用什么系统漏洞把自己从普通用户变成 root?
理论上任何软件都有这个可能性。但你想想,如果一个进程能利用系统漏洞提权——那跟是不是 AI 没关系。任何恶意软件都可以做同样的事。你该担心的是操作系统本身的安全性,而这个你通过及时更新系统就能解决大部分问题。macOS 在这方面做得还行,至少比大部分 Linux 桌面发行版好。
另一个常见的担心是:AI 会把你的数据通过网络传出去。这个倒确实是个考量点。但同样的,这个问题不是 AI 特有的——你装的任何软件都可能往外传数据。你用的浏览器、输入法、天气 App,理论上都能这么干。
如果你真的很在意网络外传这件事,macOS 上可以用 Little Snitch 这类防火墙来控制每个进程的网络访问。给 OpenClaw 进程只放行你信任的几个域名(比如 Claude API),其他一概拦掉。
说白了这件事的本质就一句话:给它一台电脑不等于给它你的全部数据。
你给一个新入职的员工一台公司电脑,那台电脑上有公司的代码仓库、有内部文档的访问权限。但你的个人照片、你的银行密码、你的私人聊天记录会在那台电脑上吗?不会。因为你们用的是不同的账号、不同的设备。
AI 助理也一样。你给它一台电脑(或者一个用户环境),它就用那个环境里的东西工作。你个人的东西,在你自己的环境里,它看不到。
除非你主动给它。
这个”除非”很重要。权限管理的核心思想就是”最小权限原则”——它需要什么你给什么,不需要的一概不给。别嫌麻烦。嫌麻烦的后果就是你的 AI 助理某天自己 SSH 到你的服务器上去拿数据(别问我怎么知道的)。
该隔离隔离,该限制限制。AI 很强,但它强在你给它的范围里。这个范围的大小,你说了算。