别让 AI 越权!OpenClaw 权限配置完全指南
一、限制只能聊天(纯对话模式)
适用场景:只想让 AI 帮你思考、写文案、做分析,不需要它执行任何文件操作或命令。
从 2026.3.2 版本开始,OpenClaw 默认已经收紧了权限,但如果你想确保它彻底无法调用工具,可以这样配置:
核心配置命令:
bash
openclaw config set tools.profile messaging tools.profile 的四种模式对比:
表格
| 模式 | 能力范围 | 适用场景 |
|---|---|---|
messaging | 纯对话,禁用所有工具(文件读写、命令执行、技能调用等) | 只想聊天、咨询的场景 |
minimal | 极简工具集(如只允许网页搜索) | 需要查信息但不执行操作 |
default | 基础工具集(文件读写、部分命令) | 日常轻度使用 |
full | 完整工具集(包括高风险操作) | 开发、自动化等场景 |
验证配置:
bash
openclaw config get tools.profile # 应该输出:messaging 效果:AI 会说“我没有权限执行此操作”,任何尝试调用工具的行为都会被阻止。
二、限制只能操作 workspace(安全执行模式)
适用场景:需要 AI 帮你处理文件、执行命令,但必须限制在指定目录,防止误删或越权操作。
这是更细粒度的配置,核心是文件系统围栏 + 工具权限白名单。
核心配置三步走:
1. 限制文件系统访问范围
编辑 ~/.openclaw/openclaw.json(或使用 CLI 命令):
json
{ "tools": { "fs": { "workspaceOnly": true } } } workspaceOnly: true 的作用:
- ✅ AI 只能读写
~/.openclaw/workspace目录及其子目录 - ❌ 禁止访问
/etc/、/home/user/等其他系统路径 - ❌ 即使尝试用绝对路径(如
/home/user/data)也会被拦截
2. 禁用高危工具(可选但强烈建议)
json
{ "tools": { "deny": [ "group:runtime", // 禁用 exec、bash 等命令执行 "sys_shutdown", // 禁用关机等系统操作 "elevated:*" // 禁用提权(绕过沙箱在宿主机执行) ], "allow": [ "group:fs", // 允许文件读写(已受 workspaceOnly 限制) "web_search" // 允许网页搜索 ] } } 为什么这样配?
group:runtime包含exec和bash,风险极高——允许 AI 执行任意 Shell 命令elevated:*禁止提权,防止 AI 绕过沙箱直接操作宿主机group:fs允许文件操作,但已被workspaceOnly: true限制在 workspace 内
3. 启用执行审批(双保险)
对于允许的命令执行,增加人工确认机制:
json
{ "tools": { "executionApproval": { "enabled": true, "autoApprove": ["Read", "Glob"], // 只读操作自动通过 "autoReject": ["Bash(sudo:*)", "Bash(*rm -rf*)"] // 高危命令自动拒绝 } } } 效果:
- ✅ 读取文件、搜索文件:自动执行
- ⚠️ 删除文件、修改配置:会问你要不要执行
- ❌ sudo、rm -rf:直接拒绝
配置生效:
修改 openclaw.json 后,需要重启网关:
bash
# 如果是系统服务 sudo systemctl restart openclaw # 或者通过控制面板重启 三、快速验证命令
配置完成后,可以用以下命令验证是否生效:
bash
# 检查当前权限配置 openclaw config get tools.profile # 深度安全审计(检查文件权限、沙箱状态、高危工具等) openclaw security audit --deep # 自动修复常见安全问题 openclaw security audit --fix 四、配置建议总结
表格
| 场景 | 推荐配置 | 核心要点 |
|---|---|---|
| 纯聊天 | tools.profile: "messaging" | 禁用所有工具 |
| 安全执行 | fs.workspaceOnly: true + 禁用 group:runtime | 限制在 workspace,禁止高危命令 |
| 生产环境 | 沙箱 mode: "all" + workspaceAccess: "none" + dmPolicy: "allowlist" | 最高隔离,仅允许授权用户 |