亡羊补牢: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.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:显式允许的额外路径白名单
推荐做法:
C:\Users\admin)2.2 路径限制检查
配置完成后,Agent 在执行文件操作前会检查目标路径是否在允许范围内。如果路径超出 workspace_root 且不在 allowed_paths 白名单中,命令会被拒绝并报错。
[拒绝] Remove-Item C:\Windows\System32\config -Recurse
Error: 目标路径不在允许的工作空间范围内
三、沙箱机制:把危险操作关进笼子
沙箱(Sandbox)是第二道防线。即使 Agent 执行了一个操作,该操作也被限制在沙箱进程内,不会直接影响真实系统。
3.1 Gateway 的沙箱隔离
OpenClaw Gateway 支持以沙箱模式运行:
# 启动沙箱模式
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 盘文件被删的经历,让我重新审视了安全配置的重要性:
这些功能 OpenClaw 都已内置,只需花几分钟配置,就能大大降低踩坑风险。希望这篇文章帮你省掉一次重装系统的折腾。
关注「小龙虾踩坑指南」,第一时间收到更多 Agent 工具实测 👇
夜雨聆风