最新消息: 找到一个合适的灵魂(SOUL)和相处方式(AGENTS)是开启AI私人助理的第一步。

OpenClaw Exec 授权配置完全指南

61 浏览 0 条评论 openclaw 指南

让 OpenClaw 执行命令不再需要手动审批,实现真正的自动化!

背景说明

OpenClaw 默认出于安全考虑,执行 shell 命令时需要用户审批。这对于自动化场景非常不便。本指南将教你如何正确配置,让 exec 命令无需审批直接执行。

适用场景:

  • ✅ 个人/可信环境部署
  • ✅ 需要自动化执行命令
  • ✅ 本地开发测试环境

不适用场景:

  • ❌ 公开/共享环境
  • ❌ 多用户 adversarial 环境
  • ❌ 需要严格权限控制的生产环境

配置文件位置

需要修改两个配置文件:

文件 路径 作用
openclaw.json ~/.openclaw/openclaw.json 主配置文件,定义工具策略
exec-approvals.json ~/.openclaw/exec-approvals.json Exec 审批配置,定义审批规则

注意: 两个文件的配置需要保持一致,实际生效的是两者中更严格的那个。


正确配置方法

步骤 1:修改 openclaw.json

在文件根级别添加或修改 tools 配置:

{
  "tools": {
    "profile": "full",
    "exec": {
      "security": "full",
      "ask": "off"
    }
  }
}

步骤 2:修改 exec-approvals.json

修改 defaults 部分:

{
  "version": 1,
  "socket": {
    "path": "~/.openclaw/exec-approvals.sock",
    "token": "your-token"
  },
  "defaults": {
    "security": "full",
    "ask": "off",
    "askFallback": "full"
  },
  "agents": {
    "main": {
      "allowlist": []
    }
  }
}

步骤 3:重启 Gateway

openclaw gateway restart

步骤 4:验证配置

# 验证配置已加载
openclaw config get tools.exec

# 测试执行命令
echo "测试无需授权"

配置字段详解

openclaw.json 配置

字段 可选值 说明 推荐值
tools.profile minimal / full 工具权限级别 full
tools.exec.security deny / allowlist / full 安全模式 full
tools.exec.ask off / on-miss / always 审批模式 off
tools.exec.host auto / gateway / sandbox / node 执行位置 可选

字段说明:

  • security: "full" - 允许所有命令执行(相当于 elevated 权限)
  • ask: "off" - 从不询问审批
  • ask: "on-miss" - 仅在白名单不匹配时询问(默认值)
  • ask: "always" - 每次命令都询问

exec-approvals.json 配置

字段 可选值 说明 推荐值
defaults.security deny / allowlist / full 安全模式 full
defaults.ask off / on-miss / always 审批模式 off
defaults.askFallback deny / allowlist / full 无法显示审批时的回退策略 full

关键字段说明:

  • askFallback: "full" - ⚠️ 这是最容易遗漏的字段!
    • 当审批 UI 无法显示时(如后台运行、无界面环境),此字段决定如何处理
    • 默认值是 deny,会导致命令被拒绝执行
    • 必须设置为 full 才能实现完全无审批

常见错误

❌ 错误 1:只修改了 openclaw.json

// openclaw.json - 配置正确
"tools": {
  "exec": {
    "security": "full",
    "ask": "off"
  }
}

// exec-approvals.json - 使用默认值(错误!)
"defaults": {
  "security": "deny",  // ← 默认值,会覆盖 openclaw.json
  "ask": "on-miss"     // ← 默认值,会导致询问
}

解决方案: 同时修改两个文件,保持一致。


❌ 错误 2:缺少 askFallback 字段

// exec-approvals.json - 缺少 askFallback(错误!)
"defaults": {
  "security": "full",
  "ask": "off"
  // askFallback 缺失,默认值为 deny
}

现象: 配置已设置,但命令仍被拒绝,错误信息:exec denied: allowlist miss

解决方案: 添加 "askFallback": "full"


❌ 错误 3:使用了无效的配置字段

// 错误配置
"tools": {
  "exec": {
    "security": "allowlist",
    "allowlist": ["*"],  // ← 这不是有效的配置字段
    "ask": "off"
  }
}

说明: allowlist 不是 openclaw.json 中的有效字段。白名单配置在 exec-approvals.json 中。

正确配置:

"tools": {
  "exec": {
    "security": "full",
    "ask": "off"
  }
}

❌ 错误 4:Agent 级别配置覆盖了全局配置

// openclaw.json
"agents": {
  "list": [
    {
      "id": "main",
      "tools": {
        "profile": "full"
        // 缺少 exec 配置,会使用默认值(需要审批)
      }
    }
  ]
},
"tools": {
  "exec": {
    "security": "full",
    "ask": "off"
  }
}

说明: Agent 级别的 tools 配置会覆盖全局 tools 配置。

解决方案: 在 Agent 级别也添加 exec 配置:

"agents": {
  "list": [
    {
      "id": "main",
      "tools": {
        "profile": "full",
        "exec": {
          "security": "full",
          "ask": "off"
        }
      }
    }
  ]
}

验证方法

方法 1:使用 config 命令验证

# 验证 openclaw.json 配置
openclaw config get tools.exec

# 预期输出:
# {
#   "security": "full",
#   "ask": "off"
# }

方法 2:直接测试命令

# 测试简单命令
echo "测试无需授权"

# 测试目录列表
dir C:\Users

# 测试系统命令
systeminfo | Select-String "OS 名称"

如果命令直接执行并输出结果,说明配置生效。

方法 3:运行 Doctor 检查

openclaw doctor --non-interactive

检查是否有配置错误。

方法 4:查看配置文件内容

Windows PowerShell:

# 查看 openclaw.json 配置
Get-Content C:\Users\Administrator\.openclaw\openclaw.json | ConvertFrom-Json | Select-Object -ExpandProperty tools | Select-Object -ExpandProperty exec

# 查看 exec-approvals.json 配置
Get-Content C:\Users\Administrator\.openclaw\exec-approvals.json | ConvertFrom-Json | Select-Object -ExpandProperty defaults

Linux/macOS:

# 查看 openclaw.json 配置
cat ~/.openclaw/openclaw.json | jq '.tools.exec'

# 查看 exec-approvals.json 配置
cat ~/.openclaw/exec-approvals.json | jq '.defaults'

故障排查

问题 1:配置修改后仍需要授权

检查清单:

  1. ✅ 两个配置文件都修改了吗?
  2. askFallback 字段设置了吗?
  3. ✅ Gateway 重启了吗?
  4. ✅ Agent 级别配置覆盖了吗?

解决步骤:

# 1. 验证配置
openclaw config get tools.exec

# 2. 检查 exec-approvals.json
# 确保有 askFallback: "full"

# 3. 完全重启 Gateway
openclaw gateway stop
# 等待 3 秒
openclaw gateway start

# 4. 测试
echo "测试"

问题 2:命令执行失败,错误 exec denied: allowlist miss

原因: exec-approvals.jsondefaults.security 不是 full,或者 askFallbackdeny

解决方案:

// exec-approvals.json
"defaults": {
  "security": "full",
  "ask": "off",
  "askFallback": "full"  // ← 确保这个字段存在且值为 full
}

问题 3:Gateway 重启失败

可能原因: 配置文件语法错误。

解决步骤:

# 1. 验证配置语法
openclaw config validate

# 2. 查看错误日志
openclaw logs --follow

# 3. 恢复备份配置
# 如果有 openclaw.json.bak,可以恢复后重新修改

问题 4:配置无法通过 API 修改

原因: tools.exec.securitytools.exec.ask 是受保护的路径,不能通过 config.patch 修改。

解决方案: 直接编辑文件:

# 使用文本编辑器
notepad ~/.openclaw/openclaw.json

# 或使用命令行
# Windows
echo CONFIG_CONTENT > ~/.openclaw/openclaw.json

# Linux/macOS
nano ~/.openclaw/openclaw.json

安全提示

⚠️ 重要警告: 此配置会让 OpenClaw 能够执行任何shell 命令,无需任何审批。

适用环境

  • ✅ 个人开发环境
  • ✅ 可信的本地部署
  • ✅ 单用户系统
  • ✅ 有良好网络安全边界的内网

不适用环境

  • ❌ 公开/共享环境
  • ❌ 多用户 adversarial 环境
  • ❌ 直接暴露在公网
  • ❌ 需要审计合规的生产环境

安全建议

  1. 网络隔离: 确保 Gateway 只绑定本地地址(bind: "loopback"
  2. 认证保护: 使用强 token 保护 Gateway API
  3. 防火墙: 限制 18789 端口的访问
  4. 定期审计: 定期检查 exec-approvals.json 中的 allowlist
  5. 备份配置: 修改前备份配置文件

更安全的替代方案

如果需要在共享环境中使用,考虑以下配置:

// 使用白名单模式
"tools": {
  "exec": {
    "security": "allowlist",
    "ask": "on-miss"
  }
}

这样只允许白名单中的命令执行,其他命令需要审批。


完整配置示例

openclaw.json 完整示例

{
  "meta": {
    "lastTouchedVersion": "2026.4.1",
    "lastTouchedAt": "2026-04-02T01:00:00.000Z"
  },
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "auth": {
      "mode": "token",
      "token": "your-secure-token"
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "bailian/qwen3.5-plus"
      }
    },
    "list": [
      {
        "id": "main",
        "tools": {
          "profile": "full",
          "exec": {
            "security": "full",
            "ask": "off"
          }
        }
      }
    ]
  },
  "tools": {
    "profile": "full",
    "exec": {
      "security": "full",
      "ask": "off"
    }
  }
}

exec-approvals.json 完整示例

{
  "version": 1,
  "socket": {
    "path": "~/.openclaw/exec-approvals.sock",
    "token": "random-token-here"
  },
  "defaults": {
    "security": "full",
    "ask": "off",
    "askFallback": "full"
  },
  "agents": {
    "main": {
      "allowlist": []
    }
  }
}

参考资料