很多人折腾 OpenClaw,第一反应就是:能不能把权限全开、限制全关,省得每次都卡审批、卡 exec、卡 elevated、卡节点、卡浏览器。
我的结论很直接:不建议无脑全开。
真正高效的做法,不是“全开”,而是在可信环境里放开必要能力,在不可信环境里保留边界。这篇文章不讲空话,直接讲:
- 配置到底改哪里
- 命令到底怎么跑
- 改完怎么看是不是生效
- 报错时该先查哪一层
- 如果搞乱了怎么收回来
一、先明确:OpenClaw 的“高权限”不是一个开关
很多人以为 OpenClaw 有个类似“管理员模式”或者“全部放开”的总开关。
实际上没有。
OpenClaw 的能力是分层的,至少要拆成下面几块看:
- 网络入口:能不能从局域网 / 远程访问 Dashboard 和 Gateway
- Gateway 认证:访问控制面时要不要 token / password / device auth
- 普通 exec:agent 能不能直接在宿主机跑命令
- elevated:agent 能不能跑更高风险、更高权限的命令
- 文件系统能力:能不能读写工作区外甚至系统文件
- 桌面 / 浏览器能力:能不能接触桌面用户、浏览器 profile、cookie 等
- 审批流:高风险命令是直接放行,还是保留确认
所以不要再用一句“全开权限”来描述需求。你真正要做的,是把这几层一层层打通。
二、先找配置入口:改哪里、怎么查
1)先找到当前配置文件
openclaw config file
这条命令会告诉你当前 OpenClaw 用的是哪份配置。
如果你连配置文件在哪都不知道,后面所有“我明明改了为什么没生效”都很正常。
2)先学会查配置
不要一上来就改。先看当前值:
openclaw config get gateway.bind
openclaw config get tools.exec.host
openclaw config get tools.exec.security
openclaw config get tools.elevated.enabled
openclaw config get tools.elevated.allowFrom
如果某个路径不存在,CLI 会直接告诉你。
3)学会改配置
基础形式:
openclaw config openclaw config set
例如:
openclaw config openclaw config set gateway.bind lan
4)改完一定要校验
openclaw config validate
这一步非常关键。
很多人最大的问题不是“不知道怎么改”,而是:
- 改了错误类型
- JSON 结构不对
- 字段名写错
- schema 不接受
结果配置根本没通过。
5)改完通常还要重启 Gateway
openclaw gateway restart
你如果只是改了配置,但没让运行中的 Gateway 重新加载,那很可能只是“文件变了,运行态没变”。
三、第一层:先打通局域网访问
很多人最先遇到的不是 exec 问题,而是:
- 本机能打开 Dashboard
- 同一局域网其他设备打不开
这时候先查:
openclaw status
openclaw gateway status
openclaw config get gateway.bind
如果你看到 Dashboard 地址还是:
127.0.0.1- 或者 Gateway 只监听 loopback
那就是网络入口没打通。
放开局域网访问的命令
openclaw config openclaw config set gateway.bind lan
openclaw config validate
openclaw gateway restart
openclaw gateway status
改完后你应该看到什么
重点看这些:
bind=lanListening: *:18789- Dashboard 不再只指向
127.0.0.1
再进一步确认:
openclaw status
openclaw qr --json
这一层常见报错 / 现象
现象 1:能 ping 通,但网页打不开
这通常说明:
- 网络没断
- 但服务没有对局域网监听
现象 2:配置改了,状态还是 loopback
优先检查:
- 有没有
openclaw config validate - 有没有
openclaw gateway restart - 你是不是改错了配置文件 / 配置 profile
回滚方式
如果你只是临时想收回局域网访问:
openclaw config openclaw config set gateway.bind loopback
openclaw config validate
openclaw gateway restart
四、第二层:exec 具体改哪里、怎么验证
exec 是最常用的能力之一。
没有它,很多事情 agent 做不了;有了它,很多事情会顺很多。
先查当前 exec 配置
openclaw config get tools.exec.host
openclaw config get tools.exec.security
常见实用配置
openclaw config openclaw config set tools.exec.host gateway
openclaw config set tools.exec.security full
openclaw config validate
openclaw gateway restart
这两个字段怎么理解
tools.exec.host = gateway
表示命令在 Gateway 所在机器执行。
如果你希望 agent 真正在当前主机上跑命令,这通常是关键。
tools.exec.security = full
表示更宽的执行权限。
这个值不是“默认推荐”,而是:
你知道自己在可信环境里,并且就是为了减少限制。
改完后怎么验证 exec 是否通了
不要一上来就测高危命令。先测低风险命令:
pwd
whoami
openclaw status
openclaw gateway status
如果这些都能正常返回,说明普通 exec 基本通了。
exec 常见问题
报 exec host not allowed
一般就是:
tools.exec.host没设对- 当前工具 host 策略不允许
改了但还是不行
优先按这个顺序查:
openclaw config get tools.exec.hostopenclaw config get tools.exec.securityopenclaw config validateopenclaw gateway restart- 再测试低风险命令
回滚方式
如果你觉得 full 太大了,就调回更保守的安全级别。关键不是“永远 full”,而是按环境调。
五、第三层:elevated 具体改哪里、怎么开
很多人以为:
- exec 通了
n- 那 elevated 也自然该通
这是错的。
elevated 是更敏感的一层,通常需要单独配置。
先查当前状态
openclaw config get tools.elevated.enabled
openclaw config get tools.elevated.allowFrom
最基础的启用方式
openclaw config set tools.elevated.enabled openclaw config set tools.elevated.enabled true
openclaw config validate
openclaw gateway restart
如果你要按来源开放
很多场景下,更合理的是只给特定来源开放,例如 Telegram。
这里最关键的一点:
allowFrom 很多时候需要的是数组,不是布尔值。
错误示例:
{
"tools": {
"elevated": {
"allowFrom": {
"telegram": true
}
}
}
}
正确思路通常更接近:
{
"tools": {
"elevated": {
"enabled": true,
"allowFrom": {
"telegram": ["*"]
}
}
}
}
为什么这里容易踩坑
因为很多人看到 allowFrom,直觉会把它写成布尔值;但 schema 往往要求的是数组、列表或更复杂的结构。
所以这里不要靠猜,一定用 openclaw config validate 验证。
改完后怎么验证 elevated
挑一个确实需要 elevated 的命令去测,但不要第一下就测危险命令。
比如你可以从:
- 包安装
- 受控服务操作
- 自己明确知道风险的系统命令
开始。
常见报错
elevated is not available right now
通常意味着:
tools.elevated.enabled没开allowFrom不匹配当前来源- 配置没校验通过
- Gateway 没重启
回滚方式
最简单直接:
openclaw config set tools.elevated.enabled openclaw config set tools.elevated.enabled false
openclaw config validate
openclaw gateway restart
如果不是完全关闭,而是想收窄范围,就改 allowFrom,不要默认所有来源都放开。
六、第四层:Control UI 要放开,但别放飞
很多人为了先跑通,会把 Control UI 相关保护直接拆掉。
这类配置最危险,因为它们看起来只是“方便访问”,实际上可能是在扩大控制面暴露范围。
先看状态页
openclaw status
如果安全审计里已经提示:
- CRITICAL
- DANGEROUS
- device auth disabled
那就说明你不是在“高效配置”,而是在“裸奔调试”。
你应该怎么处理
- 局域网访问可以放开
- 但认证不要无脑取消
allowedOrigins尽量用白名单- 名字里带
dangerously...的配置,不要长期保留开启
经验结论
Control UI 这块的目标应该是:
能访问、能用、还能过安全审计
而不是:
反正现在能打开页面了就行
七、第五层:浏览器 / 桌面 / cookie 问题到底怎么查
这一块是很多人最容易误解的地方。
很多人会说:
我都高权限了,为什么还是拿不到 Chrome?
因为这里的核心问题很多时候不是 OpenClaw 的“权限位”没开,而是:
- 当前运行用户不对
- 当前终端不在桌面用户环境里
- Chrome 的 cookie 是加密的
secret-tool/ keyring / libsecret 没打通
先查你到底是谁在运行
whoami
echo $HOME
再查浏览器配置路径
ls -la ~/.config/google-chrome
ls -la ~/.config/google-chrome/Default
再查 keyring 相关工具
which secret-tool
如果你在测 yt-dlp 浏览器 cookie
例如:
yt-dlp --cookies-from-browser chrome --skip-download --print "%(title)s" yt-dlp --cookies-from-browser chrome --skip-download --print "%(title)s" "https://youtu.be/xxxx"
遇到:
cannot decrypt v11 cookies: no key found
那重点不是“全开权限”,而是:
- 当前是不是桌面用户自己的环境
- keyring 能不能拿到 Chrome 解密密钥
libsecret-tools有没有装好
这一层的关键结论
浏览器登录态问题,首先是用户环境一致性问题,其次才是权限问题。
八、给你一套最实用的高权限配置顺序
如果你是自己一个人用、想尽量顺手,我建议照这个顺序来:
第一步:确认当前状态
openclaw status
openclaw gateway status
openclaw config file
第二步:打通局域网访问
openclaw config openclaw config set gateway.bind lan
openclaw config validate
openclaw gateway restart
openclaw gateway status
第三步:打通普通 exec
openclaw config openclaw config set tools.exec.host gateway
openclaw config set tools.exec.security full
openclaw config validate
openclaw gateway restart
第四步:验证普通 exec
pwd
whoami
openclaw status
openclaw gateway status
第五步:按需开放 elevated
openclaw config get tools.elevated.enabled
openclaw config get tools.elevated.allowFrom
根据 schema 改完后:
openclaw config validate
openclaw gateway restart
第六步:最后再处理浏览器 / 桌面用户问题
whoami
echo $HOME
which secret-tool
ls -la ~/.config/google-chrome
这个顺序的意义是:
- 先打通网络
- 再打通普通执行
- 再打通高权限执行
- 最后才碰最敏感、最容易乱的桌面 / 浏览器环境
九、错误示例和正确思路
错误示例 1:一上来就想把所有审批关掉
问题:
- 你可能确实会更顺手
- 但同时也会失去最后一道低成本保险
正确思路:
- 低风险操作少打断
- 高风险操作保留确认
错误示例 2:把 allowFrom 当布尔值乱写
问题:
- schema 不通过
- 配置根本没生效
正确思路:
- 先查当前版本要求
- 改完马上
openclaw config validate
错误示例 3:改完配置不重启 Gateway
问题:
- 文件变了
- 运行态没变
正确思路:
openclaw config validate
openclaw gateway restart
错误示例 4:把浏览器问题归结成“权限不够”
问题:
- 你可能是在错误用户环境里跑命令
- 根本没读到对应的桌面会话资源
正确思路:
- 先看
whoami - 再看
$HOME - 再看浏览器 profile 路径和 keyring
十、回滚思路一定要提前留好
高权限配置最怕的不是“开了”,而是:
- 开了以后忘了怎么收回
- 改乱了以后不知道从哪层退回来
最少记住这三种回滚
1)收回局域网暴露
openclaw config openclaw config set gateway.bind loopback
openclaw config validate
openclaw gateway restart
2)关闭 elevated
openclaw config set tools.elevated.enabled openclaw config set tools.elevated.enabled false
openclaw config validate
openclaw gateway restart
3)确认当前系统是不是健康
openclaw status
openclaw gateway status
openclaw config validate
如果现在配置已经一团乱,不要继续叠改动。先回到这三个目标:
- 配置能校验通过
- Gateway 能正常启动
- Dashboard 能正常访问
在这个基础上,再逐层加回来。
十一、真正长期好用的思路
OpenClaw 真正难的,不是“怎么把权限全开”,而是:
怎么把能力开到刚刚好,同时还知道自己改了什么、在哪改、出了问题怎么收回来。
如果你只是想图一时痛快,全开当然最快。
但如果你想长期稳定地用,正确路径永远是:
先理清层次,再按场景开放,再保留验证和回滚手段。
这才是高权限配置真正该有的样子。