在最新版的 OpenClaw 中,控制智能体能否执行本地 shell 命令(如 bash 执行、运行本地脚本等),核心取决于它的 工具策略文件(Tools Profile) 以及内置的 审批策略(policyd / approvals)。

你之前遇到的飞书插件卡死报错中提到的 tools.profile: "coding",正是 OpenClaw 最严格的沙盒隔离模式——在这个模式下,为了系统安全,OpenClaw 会彻底锁死文件系统修改权限并禁止执行任何未授权的本地系统命令。

如果你需要在 Kali 虚拟机或本地环境中让 OpenClaw 拥有执行本地命令的能力,请按照以下两种官方标准安全策略进行调整:

方案一:切换工具策略 Profile 为 ops(运维/完全控制模式)
OpenClaw 官方内置了三种安全 Profile:coding(安全沙盒)、standard(标准权限)和 ops(DevOps 运维模式)。切换到 ops 后,大模型将自动解锁完整的系统 Shell 执行权限(exec、bash 工具)。

  1. 使用命令行一键切换:
    打开你的 Kali 终端,直接通过 OpenClaw CLI 将工具策略修改为 ops:

Bash
openclaw config set tools.profile "ops" --json

  1. 如果习惯直接改配置文件:
    打开你的 OpenClaw 全局配置文件(通常位于 ~/.openclaw/openclaw.json 或 .toml),找到 tools 节点,修改为:

JSON
{
"tools": {

"profile": "full"

}
}
注意:这里已经改为了:minimal\coding\messaging\full几个选项了

  1. 强制重启 OpenClaw 网关使策略生效:
    Bash
    openclaw gateway --force
    方案二:保留 coding / standard 安全墙,通过“人机协同审批”执行(最推荐)
    如果你不想给大模型“无限的 Root 权限”以防它误删系统文件(比如在 Kali 里不小心跑了危险的渗透脚本),你可以开启最新版特有的 policyd(策略守护) 机制。

这样设置后,大模型可以尝试执行本地命令,但每一次执行前,你的 Kali 终端或前端控制台都会弹出一个 [允许/拒绝] 的拦截窗口,必须由你手动敲击回车确认,命令才会真正下发给系统。

配置方法:

Bash

1. 开启命令执行工具

openclaw config set tools.exec.enabled true --json

2. 启用每一步命令都需要人类批准的策略

openclaw config set tools.exec.requireApproval true --json

3. 重启网关

openclaw gateway --force
⚠️ 在 Kali Linux 下让 OpenClaw 执行命令的“特有硬伤”
由于你把 OpenClaw 跑在 root@kalikvm8902 权限下,模型一旦解锁命令执行,就默认拥有最高统领官(Root 权限)。为了防止 Ollama 本地大模型产生幻觉导致灾难性后果,请务必注意:

工作区隔离(Workspace Restrict):
建议限制大模型读写文件的范围,只允许它折腾你指定的项目目录,严禁它乱动你的 /etc/apt 等系统根目录:

Bash
openclaw config set tools.fs.workspaceOnly true --json
测试连通:
策略调整完毕后,在 OpenClaw 聊天窗口中直接对它说:“帮我执行一条本地命令查看当前系统时间”。如果它能正常调用并返回 date 命令的结果,说明你的安全策略已经完美放行!

标签: none

添加新评论