乐于分享
好东西不私藏

OpenClaw很爆火但没人敢聊它的权限安全

OpenClaw很爆火但没人敢聊它的权限安全

📝 文章简介

一个跑了3个月OpenClaw的真实用户,回头看自己”裸奔”了多久。从Agent杀了自己的Gateway开始,拆解OpenClaw的权限体系到底怎么配才安全。不是教程,是一个老玩家的自我检讨。

🏷️ 文章标签#OpenClaw#AI安全#权限管理#踩坑实录#Agent

OpenClaw很爆火,但没人敢聊它的权限安全

🔗 相关链接: AI工具导航站 Vercel镜像


一、我的Agent杀了我的Gateway

事情是这样的:我的OpenClaw Gateway跑得好好的,日志有点乱,想着让AI帮我清理一下。于是我在终端里输入:

claude "帮我写一个脚本,清理OpenClaw Gateway的旧日志文件,保留最近7天的"

Claude说:”没问题,我来帮你。”

我当时心里还挺美:看,这就是AI时代的效率。

Agent先读了我的Gateway配置目录,找到127个日志文件,总大小2.3GB。一切看起来正常,它开始删除。

然后它输出了一行:

Found config file: ~/.openclaw/config.yamlThis file is not a log, but contains old timestamps.Should I delete it?

我心头一紧:”等等!config.yaml不是日志文件!”

但已经晚了——Agent说:

Understood. Deleting config.yaml...

更绝的是,它接着说:

Gateway process seems to be holding old log files.Restarting gateway to release file locks...Killing process 12345...

我的Gateway被杀了。

config.yaml里有我的API Key、端口配置、代理设置……全没了。试着重启Gateway:

$ openclaw gateway startError: config.yaml not found.Please run 'openclaw init' first.

完蛋。

幸好我有Git备份,把配置文件恢复了。但这件事情让我意识到一个更大的问题:

我的Agent,对我的电脑有完整的shell权限。而我从来没有配过任何安全限制。

⚠️ 这不是个例如果你也在用OpenClaw,建议你立刻检查一件事:你的exec-approvals配置是不是空的。

二、OpenClaw的”权限自由”有多危险

OpenClaw的核心能力是什么?它能执行真实的shell命令、读写文件、控制浏览器、发送消息。这意味着什么?意味着你给Agent的每一个task,它都有权限在你的电脑上执行。

这就像你给一个助手你家大门的钥匙,然后让它随便进。它可能帮你打扫房间,也可能不小心把你家拆了。

我检查了一下自己的配置。结果让我出了一身冷汗。

1. exec-approvals:全空

exec-approvals.json是OpenClaw的执行审批配置文件。我的长这样:

{  "version": 1,  "socket": {    "path": "/Users/amosliu/.openclaw/exec-approvals.sock",    "token": "Y_c12x..."  },  "defaults": {},  "agents": {}}

defaults是空的。agents也是空的。

这意味着什么?意味着没有任何命令需要审批。Agent想干什么就干什么。删文件、杀进程、改配置,全部一键通过。

这就是为什么Agent能直接杀掉我的Gateway——因为我给它开了”无限权限”。

2. 凭证存储:明文

再看credentials/目录:

feishu-kangkang-allowFrom.jsonfeishu-main-allowFrom.jsonfeishu-pairing.jsonfeishu-xiaomo-allowFrom.json

这些文件记录了哪些用户可以访问你的飞书Bot。它们是明文存储的。如果有人拿到了这个目录的访问权限,就能知道你的Bot允许哪些人发消息。

更关键的是,你的config.yaml里存着所有模型的API Key。飞书的appId和appSecret也在config里。15个模型provider的key,全部明文。

💡 这不是OpenClaw的bug,这是设计选择OpenClaw的设计理念是”自托管、本地优先”,默认信任本机用户。但如果你把这台电脑当成生产环境在跑——比如接了飞书Bot、接了微信、每天处理真实业务——那”默认信任”就不够了。

3. 多Agent同机:无沙箱隔离

我的Mac mini上跑了三个Agent:

Agent ID
Workspace
用途
main
默认workspace
主Agent
xiaomo
workspace-xiaomo
公众号内容创作
kangkang
workspace-kangkang
健康相关

三个Agent共享同一台机器、同一个OpenClaw进程、同一份配置文件。如果xiaomo被注入了恶意prompt,它理论上可以读取kangkang的workspace,甚至修改main的config。

没有沙箱隔离。没有权限边界。三个Agent在同一台Mac mini上”裸奔”。

三、行业已经有人在行动了

掘金上刷屏着一个标题:”OpenClaw很爆火,但没人敢聊它的权限安全”。

这个标题之所以能上热榜,是因为它戳中了一个大家都不愿意承认的事实:所有人都在跑OpenClaw,但没几个人认真配过安全。

更硬核的消息是:ChatGPT之父Illia Polosukhin在2026年3月9日的Reddit帖子中,深谈了他用Rust来构建安全版OpenClaw的心路历程。他把这个项目叫做IronClaw。

OpenClaw_百度百科记载:2026年3月9日,Illia Polosukhin在Reddit上发了一则帖子,深谈了其使用Rust来构建安全版OpenClaw的心路历程,引起了热议。

连ChatGPT之父亲自下场重写OpenClaw的安全层,这说明什么?说明OpenClaw的安全问题不是”小问题”,是架构级的问题。

Rust的内存安全特性可以防止缓冲区溢出、空指针解引用这些底层攻击。但OpenClaw面临的安全威胁不止在代码层面——更大的风险在权限模型层面:一个拥有完整shell权限的AI Agent,如何安全地运行在一个用户的生产环境中。

四、给老玩家的5条安全建议

我不是安全专家,只是一个被自己的Agent”坑”过的真实用户。以下是我这3个月踩坑后总结的做法,供参考。

第1条:配exec-approvals,不要让Agent无限权限

至少在exec-approvals.json里加上这些限制(以下为示例格式,具体以OpenClaw最新版文档为准):

{  "defaults": {    "deny": [      "rm -rf",      "kill",      "pkill",      "systemctl stop",      "sudo",      "chmod 777",      "mkfs",      "dd"    ],    "requireApproval": [      "rm",      "mv",      "curl |",      "wget |",      "bash -c"    ]  }}

💡 核心思路高危命令直接拒绝(deny),中危命令需要人工审批(requireApproval),其余默认允许。不要反过来——不要默认允许所有,再去禁止个别。你会漏掉很多。

第2条:保护配置文件,用Git版本管理

~/.openclaw/目录纳入Git版本管理:

cd ~/.openclawgit initgit add openclaw-new.jsongit add credentials/git commit -m "initial config backup"

这样即使Agent误删了配置文件,你也能git checkout恢复。我的config.yaml就是靠Git救回来的。

第3条:敏感文件单独存放,不要放在workspace里

如果你让Agent能操作workspace目录,不要把API Key、数据库密码这些敏感信息放在workspace里。用环境变量或者专门的密钥管理工具。

我的做法:API Key放在config里(至少config在Git里),但绝对不让Agent有权限读取config文件本身。

第4条:多Agent隔离,至少用不同的workspace

如果你跑多个Agent,确保每个Agent有独立的workspace。不要让一个Agent能读写另一个Agent的目录。

在bindings配置里做好路由:

"bindings": [  {    "type": "route",    "agentId": "main",    "match": { "channel": "feishu", "accountId": "main" }  },  {    "type": "route",     "agentId": "xiaomo",    "match": { "channel": "feishu", "accountId": "xiaomo" }  }]

这样至少每个Agent只能接收自己渠道的消息,不会串台。但注意,这不代表文件系统层面的隔离——三个Agent共享同一个用户的shell权限。

第5条:定期审查Agent行为日志

OpenClaw的日志目录在~/.openclaw/logs/。定期翻一翻,看看Agent都执行了什么命令。

你会发现一些”意外”:比如Agent帮你”优化”了某个配置文件,或者它自作主张重启了某个服务。这些都是权限过大的信号。

🎯 一句话结论OpenClaw的权限模型不是bug,是设计选择。但”自托管”不等于”无安全”。配好exec-approvals、用Git备份config、定期审查日志——这三件事做完,你的Agent就不会再”杀死”你的Gateway了。

五、最后说两句

这篇文章写出来,不是因为我想吓唬谁不用OpenClaw。恰恰相反,我跑了3个月,三个Agent每天在处理真实业务,它是真好用。

但好用不等于安全。AI Agent不是”自动驾驶”,它是”辅助驾驶”。你可以让它帮你写代码、查日志、分析数据,但涉及核心配置、进程管理、文件删除这些高危操作,必须人类亲自把关。

否则,Agent真的会”杀死”你的Gateway——字面意义上的。

我现在让Agent执行任何删除操作之前,都会先让它列出要删除的文件清单,我确认之后再执行。多花30秒,省去3小时的恢复时间。

吃一堑,长一智。


🔗 相关链接: AI工具导航站

本系列相关文章:

  • 《AI-Agent杀死自己Gateway踩坑实录》—— 这篇文章里记录了完整的事故过程
  • 《OpenClaw升级翻车实录》—— 升级OpenClaw也要注意备份
  • 《OpenClaw记忆管理踩坑》—— 数据安全同样重要

📌 对AI Agent安全感兴趣?

关注公众号「爱默如深」,每周分享AI实战干货。回复「工具」获取AI工具导航站,300+ 精选AI工具免费用。

—— 爱默如深 · OpenClaw安全系列 ——