升级到 OpenClaw 2026.4.9 后,发现 exec 命令全部被拒绝,报错 allowlist miss。
明明配置文件里 tools.exec.security 已经设成 full,为什么还是不行?
问题不在配置文件本身——是有两个配置文件,而且另一个你没注意到。
问题现象
升级后执行任何命令都被拒绝:
exec denied: allowlist miss配置文件 ~/.openclaw/openclaw.json 里明明白白写着:
"tools": {
"exec": {
"security": "full"
}
}但就是不生效。
问题原因:两个配置文件
运行 openclaw doctor --fix 后,关键信息出现了:
Config: tools.exec.security="full"
Host: ~/.openclaw/exec-approvals.json defaults.security="allowlist"
Effective: security="allowlist" (更严格的生效)OpenClaw 的 exec 权限由 两个文件 共同控制:
~/.openclaw/openclaw.json | ||
~/.openclaw/exec-approvals.json |
更严格的那个生效。
所以你在 openclaw.json 里设 full,但 exec-approvals.json 里默认是 allowlist,结果还是被拦。
解决方案
修改 ~/.openclaw/exec-approvals.json:
nano ~/.openclaw/exec-approvals.json把 defaults.security 改成 "full":
{
"defaults": {
"security": "full"
}
}保存后重启 gateway:
openclaw gateway restart验证
openclaw status如果看到 Exec security=full is configured,说明配置生效了。
安全提醒security: full 意味着所有命令都能直接执行,不需要审批。这在本地开发环境很方便,但如果你的 OpenClaw 暴露在公开渠道(比如开放的 iMessage 群组),会有安全风险。
更安全的做法:
保持 security: allowlist只在 allowlist里加入信任的命令或者把公开渠道的 groupPolicy设成allowlist而不是open
总结
升级 OpenClaw 后 exec 失效,原因是 两个配置文件的权限设置冲突。修改 exec-approvals.json 的 defaults.security 为 "full",重启 gateway 即可解决。
夜雨聆风