应启用沙箱并设置目录白名单、配置命令白名单与高危命令拦截、启用路径净化与根目录限制、使用容器化沙箱隔离、配置执行超时与操作次数限制,从权限、命令、路径、环境、资源五层防护防止误删。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您正在配置AI Agent的运行环境,但担心其可能误删系统关键文件,则很可能是沙箱权限策略未正确设置。以下是限制Agent权限、防止误删系统文件的具体配置步骤:
一、启用沙箱并设置目录白名单
通过明确指定Agent仅可访问的路径范围,从源头杜绝越界操作。沙箱将自动拦截所有对白名单以外路径的读写请求。
1、打开OpenClaw的配置文件.env或config.yaml。
2、将SANDBOX_ENABLED设为true以强制启用沙箱模式。
3、在ALLOWED_PATHS中填入仅允许访问的目录,例如:./,~/Desktop,~/Documents。
4、确保BLOCKED_PATHS包含敏感路径,如/System,/Windows,/root,/etc,/usr/bin。
5、保存文件后重启OpenClaw服务使配置生效。
二、配置命令白名单与高危命令拦截
即使路径受限,Agent仍可能通过合法命令造成破坏。命令白名单机制可阻止rm、format、shutdown等高危指令执行,实现双重防护。
1、在配置文件中定位ALLOWED_COMMANDS字段。
2、仅保留安全、只读类命令,例如:ls,dir,cat,echo,grep,tar,zip,find。
3、确认rm、mv、dd、format、shutdown、regedit等命令**未出现在列表中**。
4、若需临时允许某条写入命令,必须配合路径白名单使用,并在ALLOWED_PATHS中严格限定其作用域。
5、重启服务验证配置加载成功,尝试执行rm -rf /应返回“命令被沙箱拦截:rm 不在白名单中”。
三、启用路径净化与根目录限制
路径净化(Path Sanitization)会在每次文件操作前校验目标路径是否位于工作区根目录下,防止利用符号链接或相对路径绕过白名单限制。
1、在config.yaml中配置storage模块:
2、设置root_path为绝对路径,例如:/data/work。
3、将restrict_to_root设为true,强制启用路径校验。
4、添加sanitize_path逻辑判断,确保所有路径调用均以/data/work/开头。
5、测试越权操作:write_file("/etc/hosts", "test")应触发“路径越权!禁止访问根目录外的文件!”异常。
四、使用容器化沙箱隔离文件系统与网络
基于Docker或bubblewrap构建轻量级隔离环境,使Agent的全部文件操作和网络请求均被重定向至受限命名空间,彻底脱离主机上下文。
1、准备专用数据卷目录:mkdir -p /data/sandbox-work。
2、运行沙箱容器,仅挂载该目录并禁用网络:
3、执行命令:docker run -it --rm --mount type=bind,source=/data/sandbox-work,target=/workspace --network none ubuntu:22.04。
4、在容器内部署Agent运行时,所有read_file、write_file操作仅限于/workspace。
5、尝试执行curl https://malicious.site将因网络命名空间为空而立即失败。
五、配置执行超时与操作次数限制
防止Agent陷入无限循环或批量误删行为。通过资源熔断机制,在单次任务中对文件操作频次与总耗时设硬性上限。
1、在配置中添加MAX_FILE_OPERATIONS=50,限制单次任务最多执行50次文件操作。
2、设置EXECUTION_TIMEOUT_SECONDS=120,超过2分钟自动终止当前执行流。
3、启用THROTTLE_DELAY_MS=500,每次文件操作后强制延迟500毫秒,降低突发IO冲击。
4、在日志中监控operation_count_exceeded或execution_timeout事件,确认熔断机制已激活。
5、模拟批量删除场景时,第51次delete_file调用应被拒绝,并返回“操作次数超出沙箱配额:50次/任务”。











