AionClaw安全沙箱需启用并生效:第一步强制开启sandbox.enabled=true;第二步配置allowedPaths与blockedPaths实现路径黑白名单;第三步设workspaceAccess:"ro"确保只读挂载;第四步清空elevatedTools并审计验证;第五步通过root_path和restrict_to_root启用路径净化。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让AionClaw在执行文件读写、代码运行等操作时,始终被限制在安全边界内,防止误删系统文件、覆盖重要文档或泄露隐私数据。这要求沙箱不仅启用,还要真正生效——路径白名单必须精确、挂载方式必须只读、提权通道必须彻底关闭。
确认并启用基础沙箱模式
第一步是确保沙箱功能已强制开启,这是所有后续隔离策略生效的前提。OpenClaw默认可能处于直连模式,此时AI拥有与当前用户完全一致的文件系统权限。
打开配置文件 ~/.openclaw/config.json,定位到 gateway 对象内部,添加或修改字段:"sandbox": {"enabled": true}。
保存后执行 openclaw restart 重启服务。若未重启,配置不会加载,沙箱形同虚设。
设置严格路径白名单与黑名单
仅启用沙箱不够,必须明确告诉AionClaw“它能碰哪些地方”。白名单是第一道防线,所有未列入的路径均被自动拦截。
在同一个 config.json 文件中,找到或新增 allowedPaths 字段,填入绝对路径或支持波浪号展开的路径,例如:["./", "~/Desktop", "~/Documents/ProjectA"]。
【禁止使用通配符或模糊路径如 ~/Documents/*】,沙箱不解析通配符,该写法会导致整个 ~/Documents 目录被排除在外。
紧接着配置 blockedPaths 字段,填入高危路径:["/System", "/Windows", "/root", "/etc", "/usr/bin", ".git", "env"]。这些路径即使出现在白名单中,也会被黑名单优先拦截。
配置只读工作区挂载
方法一:通过 JSON 配置强制只读
在 config.json 的 sandbox 块中,添加 "workspaceAccess": "ro"。此设置会让沙箱在启动容器时,将主机工作目录以只读方式挂载进容器。
方法二:手动验证挂载行为
进入正在运行的沙箱容器:docker exec -it openclaw-sandbox-xxx /bin/sh,执行 touch /workspace/test。若返回 Read-only file system,说明挂载生效;若成功创建文件,则配置未生效,需检查 Docker 容器是否真正启用、路径是否拼写错误。
注意:所有挂载路径(如 /secrets、/config)都应在映射字符串末尾显式添加 :ro 后缀,例如 "/home/user/.openclaw/secrets:/secrets:ro"。
禁用提权工具链与高危命令
第一步:检查 elevatedTools 字段是否存在
在 config.json 中搜索 elevatedTools。如果存在,立即将其值设为空数组:"elevatedTools": []。
第二步:确认该字段未被手动添加
若该字段根本不存在,切勿自行添加;默认状态下即为禁用,添加反而可能触发未知行为。
第三步:运行审计命令验证
执行 openclaw security audit --list-elevated,终端必须输出 No elevated tools configured。任何其他输出都意味着提权通道仍开放。
启用路径净化与根目录强制校验
① 打开 config.yaml(若不存在则新建),在 storage 模块下配置:
root_path: "/data/work"
restrict_to_root: true
② 添加路径净化逻辑:所有传入的文件路径必须以 /data/work/ 开头,否则立即拒绝。
③ 测试越权行为:调用 write_file("/etc/hosts", "test"),应抛出异常 路径越权!禁止访问根目录外的文件!。若写入成功,说明 restrict_to_root 未生效或 root_path 设置错误。


















