跳转至

权限模式

权限模式决定代理在运行主机命令、写入文件或向后端工具框架请求额外访问权限之前所拥有的权限程度。

Note

权限模式与 tools.exec.host=auto 是分开的。tools.exec.host 选择命令在何处运行。tools.exec.mode 选择主机 exec 如何获得批准。

对于需要实用主机访问且不必让每次未命中都变成人工提示的编码代理,请使用 auto:

openclaw config set tools.exec.mode auto
openclaw approvals get
openclaw gateway restart

openclaw approvals get 会打印请求的策略、其背后的主机策略来源,以及有效结果。在重启生效之前,使用它来确认 tools.exec.mode 的写入已落入您预期的来源。

然后验证有效策略:

openclaw exec-policy show

OpenClaw 主机 exec 模式

tools.exec.mode 是主机 exec 的标准化策略接口。每种模式都会解析为底层的 security(白名单严格程度)和 ask(未命中时提示)设置对:

模式 security / ask 行为 使用时机
deny deny / off 完全阻止主机 exec。 不允许任何主机命令。
allowlist allowlist / off 仅运行白名单中的命令;静默拒绝未匹配命令。 您拥有已知安全的命令集。
ask allowlist / on-miss 运行白名单匹配命令;未匹配时询问人工。 每个新命令都应由人工审查。
auto allowlist / on-miss 运行白名单匹配命令;使用 allow、deny 或 ask 审查符合条件的未匹配命令。 编码会话需要实用的受保护访问。
full full / off 运行主机 exec 而不进行常规策略提示。 此受信任主机应跳过常规策略提示。

ask 和 auto 共享相同的 allowlist/ask 设置;auto 额外启用原生自动审查器。allow 判定允许一次低风险或中风险执行。deny 判定会向代理返回原因,以便其选择实质上更安全的替代方案或询问用户。ask 判定请求人工批准,审查失败时也是如此。在网关上,连续三次审查拒绝会升级为人工处理。现有的绑定检查和明确的人工批准要求仍然适用;参见Exec 模式。

网关的审批支持命令会在审查前绑定每个已解析的命令段可执行文件,并在启动前重新检查该可执行文件:受保护的可执行文件仅使用解析后的真实路径身份,而可写可执行文件还使用内容哈希。节点身份检查涵盖从本地策略评估到派发的全过程,并存在远程 shell 包装器审批限制。在 auto 模式下,POSIX 登录或交互式 shell 包装器在绑定成功时会跳过审查者并要求人工批准;现有的绑定拒绝仍然保持拒绝。其隐式启动文件不在操作数绑定范围内。

tools.exec.strictInlineEval 是一个单独的选入设置,默认为 false。当常规主机审批评估运行时,已识别的内联求值形式(如 python -c、node -e 和 sed 程序)在启用严格模式时需要审查者或明确批准,即使在 full/off 策略下也是如此。单独配置 tools.exec.mode: "full" 不会绕过该检查。

网关执行如果来自具有有效 security full 和 ask off 的完全权限会话,或来自经许可的提升式完全执行(exec 与主机审批策略均允许 full/off),则会跳过主机审批路径及其严格内联检测器。仅以 ask 方式收紧完整会话会恢复该路径。参见会话权限模式和提升模式。

有关完整的主机 exec 策略、本地审批文件、白名单模式、安全二进制文件和转发行为,参见Exec 审批。

Codex Guardian 映射

对于原生 Codex 应用服务器会话,当本地 Codex 要求允许时,tools.exec.mode: "auto" 会推动 Codex 采用经 Guardian 审查的审批。典型的生成值:

Codex 字段 典型值
approvalPolicy on-request
approvalsReviewer auto_review
sandbox workspace-write

auto 模式会以此策略强制覆盖任何已配置的 Codex sandbox/审批覆盖项,因此不会保留旧版不安全组合,例如 approvalPolicy: "never" 搭配 sandbox: "danger-full-access"。tools.exec.mode: "deny" 和 "allowlist" 会完全阻止 Codex 应用服务器的本地执行。仅在您有意采取无审批姿态时,才使用 tools.exec.mode: "full"。

有关应用服务器设置、认证顺序和原生 Codex 运行时详细信息,参见Codex 工具框架。

ACPX 工具框架权限

ACPX 会话没有用于权限提示的交互式 TTY。受支持的 ACP 表单和 URL 请求仍可在渠道投递的对话轮次期间作为网关问题送达操作员;这些与权限审批相互独立。ACPX 在 plugins.entries.acpx.config 下使用单独的框架级设置:

设置 值 含义
permissionMode approve-reads 仅自动批准读取操作。
设置 值 含义
permissionMode approve-all 自动批准写入和 shell 命令。
permissionMode deny-all 拒绝所有权限提示。
nonInteractivePermissions fail 当需要提示时中止。
nonInteractivePermissions deny 拒绝提示,并在可能时继续。

将 ACPX 权限与 OpenClaw exec 审批分开设置:

openclaw config set plugins.entries.acpx.config.permissionMode approve-all
openclaw config set plugins.entries.acpx.config.nonInteractivePermissions fail

在默认混合重载模式下,这些更改会自动重载 ACPX 插件。其他模式参见 配置热重载。

将 approve-all 用作 ACPX 中无提示 harness 会话的紧急例外等效方式。有关设置详情和失败模式,参见 ACP agents 设置。

选择模式

目标 配置
完全阻止主机命令 tools.exec.mode: "deny"
仅允许已知安全命令运行 tools.exec.mode: "allowlist"
对每种新命令形态询问人工 tools.exec.mode: "ask"
在人工之前使用 Codex/OpenClaw 自动审查 tools.exec.mode: "auto"
跳过普通主机 exec 审批提示 tools.exec.mode: "full" 加上匹配的主机审批,并设置 strictInlineEval: false
使非交互式 ACPX 会话可写入/执行 plugins.entries.acpx.config.permissionMode: "approve-all"

如果更改模式后命令仍然提示或失败,请检查这两层:

openclaw approvals get
openclaw exec-policy show

在上述完全权限 Gateway 会话例外之外,主机 exec 会使用 OpenClaw 配置和主机本地审批文件中更严格的结果。ACPX harness 权限不会放宽主机 exec 审批,主机 exec 审批也不会放宽 ACPX harness 提示。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw