乐于分享
好东西不私藏

亡羊补牢:OpenClaw安全配置实战指南

亡羊补牢:OpenClaw安全配置实战指南

导读

最近我不小心通过 OpenClaw 误删了 C 盘的重要文件,结果系统直接起不来了。一番折腾后重装了系统,但数据和配置全丢了。 这次教训让我认真研究了 OpenClaw 的安全配置,发现它其实有一套完整的防护机制——操作确认、工作空间隔离、沙箱、备份还原。可惜这些功能默认不一定全开,或者需要手动配置才能发挥最大防护效果。 这篇文章,把我的踩坑经历和配置经验分享出来,希望你别重蹈覆辙。


一、操作确认:日常工作中最实用的防线

核心原则:任何删除操作,先让 Agent 列出文件清单,你确认后再执行。

1.1 日常对话流程

和 OpenClaw 协作删除文件时,不要直接说「帮我删掉 temp 文件夹」,而是分两步走:

你:帮我清理 C:\temp 文件夹,先列出文件,带我确认后再删除
Agent:我找到了以下文件待删除:
       - C:\temp\old_logs.txt (2023-01-15)
       - C:\temp\cache.bak (2024-06-20)
       - C:\temp\unused_config.xml (2025-03-10)
       共 3 个文件,是否确认删除?

你:确认
Agent:已删除 3 个文件

关键技巧:

1明确指定范围:告诉 Agent 要删除什么,而不是「帮我清理」
2要求列出清单:在确认前,先让 Agent 列出所有将被删除的文件
3检查文件日期和大小:对于大文件或旧文件,多问一句「这个确定要删吗」
4用 trash 代替 delete:让 Agent 把文件移到回收站而非永久删除

1.2 对话模板

你:帮我清理 [目录],先用 trash 命令列出待删除文件

Agent:以下文件将移到回收站:
       [文件列表]
       共 X 个文件,是否确认?

你:确认,帮我删掉 [排除某些不需要删的]

Agent:已删除 X 个文件

1.3 安全替代命令

危险命令
安全替代
说明
rm -rf /path trash /path
移到回收站而非永久删除
Remove-Item -Force Remove-Item -Confirm
强制确认后再删
> file.txt >> file.txt

 或先复制
避免直接覆盖
mv src dest cp src dest && rm src
先备份再移动

1.4 PowerShell 确认提示

如果你用的是 PowerShell,可以开启全局确认提示:

# PowerShell 删除确认
Remove-Item -Path "C:\temp\*" -Recurse -Confirm

或者设置行为偏好:

# 全局设置:删除超过10个文件时自动确认
$ConfirmPreference = "High"

# 或者在配置文件中设置
# PowerShell profile: $ConfirmPreference = "High"

二、工作空间隔离:给 Agent 划定活动范围

核心原则:让 Agent 只能在指定的目录范围内操作文件,超出范围一律拒绝。

2.1 配置 workspace root

OpenClaw 支持为每个 workspace 配置独立的工作目录。在 ~/.qclaw/workspaces/ 下可以为不同用途创建独立的 workspace 配置。

{
"workspace_root""D:\\my-workspace",
"allowed_paths": ["D:\\my-workspace""D:\\shared-folder"]
}

关键配置项:
– workspace_root:Agent 的默认工作根目录,所有文件操作默认在此目录下
– allowed_paths:显式允许的额外路径白名单

推荐做法:

1为不同任务创建独立 workspace
2工作文件不要放在用户根目录(C:\Users\admin
3重要项目放在非系统盘,且定期备份

2.2 路径限制检查

配置完成后,Agent 在执行文件操作前会检查目标路径是否在允许范围内。如果路径超出 workspace_root 且不在 allowed_paths 白名单中,命令会被拒绝并报错。

[拒绝] Remove-Item C:\Windows\System32\config -Recurse
Error: 目标路径不在允许的工作空间范围内

三、沙箱机制:把危险操作关进笼子

沙箱(Sandbox)是第二道防线。即使 Agent 执行了一个操作,该操作也被限制在沙箱进程内,不会直接影响真实系统。

3.1 Gateway 的沙箱隔离

OpenClaw Gateway 支持以沙箱模式运行:

Agent 的文件操作写入虚拟层,不直接落盘
需要显式「确认」才会将改动写入真实文件系统
危险的系统级命令会被拦截或降权执行
# 启动沙箱模式
openclaw gateway start --sandbox

# 或者在配置文件中启用
{
"sandbox": {
"enabled"true,
"auto_confirm_safe"true,
"confirm_destructive"true
  }
}

3.2 沙箱与真实环境的区别

操作类型
沙箱内
真实系统
文件创建
写入虚拟层
直接落盘
文件删除
虚拟删除,可恢复
直接删除,可能不可恢复
注册表修改
沙箱内副本
被拦截或降权
网络请求
可配置代理或限制
正常发出
高危命令
拦截或警告
可能执行

3.3 沙箱配置建议

{
"sandbox": {
"enabled"true,
"confirm_destructive"true,
"blocked_commands": [
"format",
"del /f /s /q C:\\",
"rm -rf /",
"dd if=.*of=/dev/sda"
    ],
"file_size_limit_mb"100,
"network_allowed_domains": ["api.openai.com""*.github.com"]
  }
}

四、备份与还原:最后的安全网

无论配置多完善,意外还是会发生。定期备份是最后一道防线。

4.1 OpenClaw 自身配置的备份

OpenClaw 的配置文件集中在 ~/.qclaw/ 目录下:

~/.qclaw/
├── config.json          # 主配置文件
├── gateway.env          # 环境变量(含 API Key)
├── workspaces/         # 工作空间配置
├── agents/             # Agent 配置
└── memory/             # 长期记忆文件

备份脚本:

# PowerShell 备份脚本
$backupDir = "D:\OpenClaw-Backup"
$timestamp = Get-Date -Format "yyyyMMdd-HHmmss"
$backupPath = "$backupDir\$timestamp"

New-Item -ItemType Directory -Path $backupPath -Force

# 复制配置文件
Copy-Item -Path "$env:USERPROFILE\.qclaw" `
            -Destination "$backupPath\.qclaw" `
            -Recurse -Force

Write-Host "备份完成: $backupPath"

4.2 快速还原

# 从备份还原
Copy-Item -Path "D:\OpenClaw-Backup\20260519\.qclaw" `
            -Destination "$env:USERPROFILE\.qclaw" `
            -Recurse -Force

# 重启 Gateway
openclaw gateway restart

五、安全配置检查清单

□ 操作确认:删除文件前是否先让 Agent 列出清单?
□ 工作空间:workspace_root 是否指向非系统盘的独立目录?
□ 沙箱模式:沙箱是否启用?危险命令是否被拦截?
□ 备份策略:~/.qclaw/ 配置文件是否定期备份?
□ 安全替代:是否用 trash 代替 rm,用 -Confirm 代替 -Force?
□ 权限控制:Agent 以什么权限级别运行?是否需要 admin?

总结

这次 C 盘文件被删的经历,让我重新审视了安全配置的重要性:

操作确认是日常工作中最实用的防线,养成「先列清单再确认」的习惯
工作空间隔离划定了 Agent 的活动范围
沙箱机制把破坏力关进笼子
备份还原是最后的保险,数据丢了还能找回来

这些功能 OpenClaw 都已内置,只需花几分钟配置,就能大大降低踩坑风险。希望这篇文章帮你省掉一次重装系统的折腾。


关注「小龙虾踩坑指南」,第一时间收到更多 Agent 工具实测 👇