OpenClaw 安全

OpenClaw 执行审批教程:配置策略、拒绝一次、放行一次并核对结果

用只读 pwd 命令走通执行审批,区分设备配对、聊天准入与主机命令权限,附验收记录模板。

进阶 预计 25 分钟 更新 2026/9/6 核验 2026/9/6
本页目录

完成结果

学完后你会留下什么

一份包含执行主机、策略、两次请求和工具结果的审批验收记录。

验证版本
2026.9.2
适合谁
已能在本地测试 Gateway 中对话,希望验证命令审批是否生效的用户
开始前确认
  • 独立的本地测试 Gateway,当前账号可以管理审批
  • 能打开 Control UI 并让测试 Agent 使用 exec 工具
  • 已记录原策略,练习环境没有生产定时任务

这次练习只让 Agent 查询当前目录:先拒绝,再重新请求并单次允许。你最后应能用工具记录证明两次结果的差别,而不是仅凭 Agent 说“已经执行”。

**验证范围:**已在 macOS / Node 24.15.0 的独立配置目录运行 v2026.9.2 CLI,验证 exec-policy setshow 返回的有效策略。真实模型发起请求、UI 拒绝和单次放行尚未完成端到端实测。先执行 openclaw --version;旧版缺少命令时应使用对应版本帮助。练习面向 macOS/Linux 测试主机。

查看本站 CLI 验证记录。记录中临时目录已替换为 <isolated-lab>,没有加入模型调用结果。

1. 先确认是哪一种授权

现象检查入口不代表什么
Telegram 私聊提示配对码渠道 pairing远程电脑已经接入
新电脑连接被拒绝devices 配对与连接认证该设备所有命令都获准
Agent 运行命令出现批准卡片exec approvals所有文件操作都会弹窗
摄像头或屏幕不可用系统权限、声明能力、调用策略批准一条 shell 命令即可解决

本页只处理第三行。执行审批也不等于文件系统隔离;命令获准后仍使用执行账号的权限。

2. 找对执行机器并记录原状态

打开 Gateway 所在机器的终端。CLI、Gateway 和 Node 可能是三台设备;本练习要求 CLI 与测试 Gateway 同机,避免把本地策略误应用到远程主机。

openclaw --version
openclaw exec-policy show
openclaw approvals get --gateway

记录原 host、security、ask、askFallback 和 Agent 范围,保存在私人笔记中。不要分享带 token 的完整配置。exec-policy show 不包含会话内覆盖;在测试会话发送 /exec 查看当前会话设置。

若执行目标是 Node,本页的本地快捷设置不适用。应通过 openclaw approvals get --node "节点ID" 查询目标主机,不要为走完练习改变生产任务的主机。

3. 在测试环境要求每次询问

openclaw exec-policy set --host gateway --security allowlist --ask always --ask-fallback deny
openclaw exec-policy show
openclaw approvals get --gateway

set 会修改本地配置和本地主机审批策略,不能直接在有生产自动任务的 Gateway 上试验。这组设置选择 Gateway、使用允许列表约束、每次询问,并在无法确认时拒绝。检查输出的有效策略;若 Agent 有自己的覆盖,还要核对该范围。

UI 可查看 Nodes → Exec approvals,选择 Gateway 和正确的 Defaults/Agent,核对并保存。某些主机使用原生审批格式,遇到只读界面时按对应主机文档处理,不要强行套用其他平台的 JSON。

4. 发起只读请求,先拒绝

在测试会话粘贴:

这是一次执行审批练习。
请通过 exec 工具在 Gateway 主机只执行 pwd,输出当前工作目录。
不要读文件正文,不要改文件,不要安装软件,不要改权限策略。
如果执行被拒绝,请报告拒绝,不要换工具、改命令或自动重试。

提示词表达任务,策略才控制执行。如果只有文字回答而没有工具调用,练习还没有开始。

出现卡片后核对完整命令、工作目录、主机和 Agent。练习不应包含安装、网络下载或附加命令。选择 拒绝。也可在 Gateway 终端运行:

openclaw approvals pending

找到这次请求,复制完整 ID/token。下例 REQUEST_ID 必须替换,不能原样粘贴,也不能使用别的会话的 ID:

openclaw approvals resolve "REQUEST_ID" deny

**拒绝验收:**工具记录显示拒绝或未获授权,没有这次命令的成功输出。Agent 根据历史上下文猜出目录不能算执行成功。记录请求 ID、决定和工具结果。

5. 重新请求,只允许这一次

让 Agent 再执行同一个练习,等待新的请求。上一条已拒绝的 ID 不能作为未处理请求批准。

确认仍是 pwd,选择 Allow Once,或运行:

openclaw approvals resolve "NEW_REQUEST_ID" allow-once

**放行验收:**工具返回实际目录路径,最终回答与工具结果一致。路径应属于 Gateway 主机,而不是浏览器所在的另一台电脑。

先不用 allow-always。长期授权有自己的命令、目录或任务范围;ask=always 仍可能要求确认。单次放行也只允许尝试执行,不能保证命令最终成功。

6. 按症状排查

症状先核对不要直接做
没有卡片有无 exec 调用、执行主机、有效 ask、会话覆盖改成 full
直接拒绝deny 策略、UI 是否在线、请求是否过期反复批准旧 ID
多条 pending命令、Agent、时间和目录是否匹配全部允许
批准后仍失败工具返回的运行时、目录或策略错误把批准当成成功
Node 不受设置影响approvals get --node 的目标策略只改 CLI 本机

没有弹窗不一定异常:请求可能已被工具策略拒绝,或根本没走主机 exec。先找工具记录,再决定修改哪一层。

7. 保存验收记录并结束练习

下载审批验收记录模板。填写两次请求的实际结果,再确认是否保留测试策略。如果需要恢复,按第 2 步记录恢复原字段,重新运行 exec-policy show 核对。

没有一条通用的“恢复默认”命令可以代替你的原配置,尤其不要把 preset yolo 当成清理步骤。一次性测试环境可以保留严格策略并停止该测试 Gateway。

下一步

跨机器执行前,完成 Nodes 接入与能力验收。限制文件、网络和工具范围可参考 安全加固;基础状态异常时使用 排错清单

官方资料

版本和参数,以这些来源为准

本文按实际任务重写,快速变化的信息仍应在操作前回到官方页面核对。

常见问题

继续操作前,先确认这些边界

设备已经配对,为什么执行命令还要审批?

配对解决设备能否连接,执行审批解决目标主机是否允许这次命令。连接成功不等于允许执行。

为什么点过 Always Allow 还会询问?

先检查有效 ask 是否为 always,再检查参数、工作目录、目标主机与 Agent 是否变化。永久允许不是对整台机器放行。

审批能把主机变成只读文件系统吗?

不能。审批不是文件系统隔离;通过的命令仍按执行账号的权限访问文件。

继续学习

按当前任务继续推进