脱缰的小龙虾危害有多大你知道么?OpenClaw 全能自动、越用越聪明,能自主读写文件、帮你高效完成任务。可没人告诉你,无防护运行的它,分分钟误删你电脑全部文件!踩过坑才明白,不做任何权限限制的本地 AI,隐患远比你想象的恐怖。
大家好,我是寒山。
不管你是刚装好 OpenClaw 的新手,还是已经深度使用的老玩家,今天这条视频,直接给你全套保姆级安全防护方案,九大安全策略一次性全部讲透。
🚨 安全预警
想象一下这个场景:
- 你让OpenClaw帮你整理文件,它却把整个文档目录清空了
- 你让它测试代码,它却修改了系统配置文件
- 你让它批量处理数据,它却误删了重要项目文件
这些不是危言耸听,而是真实可能发生的风险。AI的指令理解一旦出现偏差,后果不堪设想。
📁 策略1:工作区安全配置------从源头划定安全边界
📚 原理介绍
OpenClaw运行时会涉及文件读取、写入、修改等操作,若直接在系统目录或重要目录运行,一旦AI指令出现歧义,极易误删系统文件、个人文档等核心数据。
工作区安全配置是最基础的防护措施:
- 创建专用工作目录,为OpenClaw划定专属"活动虾池"
- 锁定默认工作区,强制AI始终在安全范围内活动
这相当于给小龙虾搭建一个有固定围栏的虾池,既划定了活动范围,又防止它跳出池外。
🔧 完整操作流程
步骤1:创建专用工作目录
-
创建目录:打开终端,输入命令创建独立的工作目录(确保不与系统核心目录重叠):
bashmkdir -p ~/OpenClaw_Safe_Workspace # 创建专属安全工作目录 -
加固权限:设置为仅当前用户可访问、读写、执行,防止其他程序或用户误操作:
bashchmod 700 ~/OpenClaw_Safe_Workspace # 仅当前用户拥有该目录的全部权限
步骤2:锁定默认工作区
-
找到配置文件 :OpenClaw的核心配置文件路径为:
~/.openclaw/openclaw.json(若没有该文件,启动一次OpenClaw即可自动生成)。 -
编辑配置文件:用文本编辑器(如TextEdit、VSCode)打开该文件,添加默认工作区配置:
json{ "agents": { "defaults": { "workspace": "~/OpenClaw_Safe_Workspace" // 强制指定默认工作区 } } } -
生效配置:保存配置文件后,重启OpenClaw,配置即可生效,后续启动会自动定位到专用工作区。
或者使用CLI命令更方便:
bash
openclaw config set agents.defaults.workspace "~/OpenClaw_Safe_Workspace"
🛡️ 防护范围
- 物理隔离:限制OpenClaw所有文件操作(读取、写入、删除、修改)仅在
~/OpenClaw_Safe_Workspace目录内进行 - 软件锁定:强制OpenClaw启动后默认进入专用工作区,禁止AI主动切换到其他目录
🏰 策略2:启用沙箱模式------打造真正的安全隔离
📚 原理介绍
沙箱(Sandbox)是OpenClaw最重要的安全特性之一。它将OpenClaw的执行环境与主机系统完全隔离,即使AI出现误操作,也只会影响沙箱内部,不会波及主机。
沙箱模式有三种:
off:关闭沙箱(默认,执行在主机上)⚠️不推荐non-main:非主会话启用沙箱all:所有会话都启用沙箱✨最安全
沙箱后端:
docker:使用Docker容器隔离✨推荐ssh:通过SSH连接到远程环境openshell:使用OpenShell隔离
🔧 完整操作流程
步骤1:配置沙箱模式
-
启用沙箱 :编辑
~/.openclaw/openclaw.json,添加沙箱配置:json{ "agents": { "defaults": { "sandbox": { "mode": "all", // 所有会话都启用沙箱 "backend": "docker", // 使用Docker作为沙箱后端 "scope": "agent" // 按agent隔离沙箱 } } } }
或者使用CLI命令:
bash
openclaw config set agents.defaults.sandbox.mode "all"
openclaw config set agents.defaults.sandbox.backend "docker"
步骤2:管理沙箱
-
查看沙箱状态:
bashopenclaw sandbox list -
重建沙箱(配置变更后):
bashopenclaw sandbox recreate --all # 重建所有沙箱 openclaw sandbox recreate --agent main # 仅重建main agent的沙箱 -
查看沙箱配置:
bashopenclaw sandbox explain # 查看当前生效的沙箱配置
🛡️ 防护范围
- 完全隔离:OpenClaw执行环境与主机系统完全隔离
- 限制访问:沙箱内只能访问挂载的目录,无法访问主机其他文件
- 快速恢复:沙箱损坏时可快速重建,不影响主机
🔐 策略3:配置文件权限加固------防止安全设置被篡改
📚 原理介绍
OpenClaw的配置文件(openclaw.json)是安全策略的核心,若该文件被其他程序、用户误修改或恶意篡改,之前设置的默认工作区、沙箱防护等都会失效,导致安全漏洞。
加固配置文件权限相当于给"安全手册"加锁,确保安全策略稳定生效。
🔧 完整操作流程
步骤1:手动加固权限
-
加固配置目录权限:打开终端,先加固配置文件所在目录的权限,仅当前用户可读写执行:
bashchmod 700 ~/.openclaw # 限制配置目录的访问权限 -
加固配置文件权限:再单独加固配置文件本身的权限,仅当前用户可读写,禁止修改、删除:
bashchmod 600 ~/.openclaw/openclaw.json # 锁定配置文件,防止被篡改 -
加固敏感文件:
bashchmod 600 ~/.openclaw/credentials/*.json # 加固凭证文件 chmod 600 ~/.openclaw/agents/*/auth-profiles.json # 加固认证配置 chmod 600 ~/.openclaw/sessions/*.jsonl # 加固会话文件
步骤2:使用安全审计自动修复
OpenClaw提供了安全审计工具,可以自动检测和修复权限问题:
bash
openclaw security audit --fix # 检测并自动修复安全问题
🛡️ 防护范围
禁止任何非当前用户(包括其他程序)修改、删除OpenClaw的配置文件;若需修改配置,需手动提升权限,避免误操作或恶意篡改导致安全策略失效。
🔒 策略4:文件系统工具限制------防止越权文件操作
📚 原理介绍
OpenClaw的文件系统工具(fs_read、fs_write、apply_patch等)默认可能有较大权限。通过限制这些工具只能在工作区内操作,可以防止AI访问或修改工作区外的重要文件。
🔧 完整操作流程
配置工具限制
-
限制文件系统工具 :编辑配置文件,添加工具限制:
json{ "tools": { "fs": { "workspaceOnly": true // 仅允许在工作区内操作 }, "exec": { "applyPatch": { "workspaceOnly": true // apply_patch也限制在工作区 } } } }
或者使用CLI命令:
bash
openclaw config set tools.fs.workspaceOnly true
openclaw config set tools.exec.applyPatch.workspaceOnly true
配置工具Profile(深入理解)
📖 什么是工具Profile
工具Profile是OpenClaw提供的一组预设工具权限集合,类似于安全模板,可以快速限制AI能使用的工具范围,从而控制安全风险。
🛠️ 四种Profile详解
typescript
const CORE_TOOL_PROFILES: Record<ToolProfileId, ToolProfilePolicy> = {
minimal: { /* 最安全 */ },
coding: { /* 编程场景 */ },
messaging: { /* 消息场景 */ },
full: {}, /* 无限制 */ };
1️⃣ minimal (最小模式,最安全)
仅允许:
session_status(会话状态查询)
2️⃣ messaging (消息模式,推荐日常使用)
允许工具:
sessions_list(会话列表)sessions_history(会话历史)sessions_send(发送消息)session_status(会话状态)message(发送消息)
3️⃣ coding(编程模式,用于开发场景)
包含所有编程需要的工具:
- 文件操作:
read,write,edit,apply_patch - 执行工具:
exec,process,code_execution - 网络工具:
web_search,web_fetch,x_search - 记忆工具:
memory_search,memory_get - 会话管理:所有sessions相关工具
- 自动化:
cron - 媒体工具:
image,image_generate,music_generate,video_generate - 其他:
update_plan
4️⃣ full (完整模式,最危险)
无限制,允许所有工具。
🔧 Profile工作原理
每个工具都标注了它属于哪些Profile:
typescript
{
id: "read", // 读取文件工具
label: "read",
description: "Read file contents",
sectionId: "fs",
profiles: ["coding"], // 只属于coding profile
}
📋 如何使用
方法1:通过配置文件 (~/.openclaw/openclaw.json)
json
{
"tools": {
"profile": "messaging"
}
}
方法2:通过CLI命令
bash
openclaw config set tools.profile "messaging"
🎯 最佳实践建议
| 场景 | 推荐Profile | 理由 |
|---|---|---|
| 日常聊天/消息处理 | messaging |
够用且安全 |
| 编程开发 | coding |
功能全面 |
| 仅需查看状态 | minimal |
最安全 |
| 完全信任/测试环境 | full |
无限制 |
🛡️ 防护范围
- 工作区隔离:文件工具只能操作工作区内的文件
- 工具限制:可以限制危险工具的使用范围
- Profile管理:通过预设Profile快速应用安全设置
🔏 策略5:系统级权限管控------拒绝过度授权
📚 原理介绍
Mac系统的"完全磁盘访问权限"相当于给程序开放了整个主机的文件访问权限,很多用户为了方便,会给运行OpenClaw的终端、VS Code等程序授予该权限,这相当于给小龙虾开放了整个池塘,风险极高。
遵循"最小授权"原则,限制系统级权限,是提升安全性的关键。
🔧 完整操作流程
步骤1:Mac系统权限管理
-
打开系统设置:打开Mac"系统设置",找到"隐私与安全性",点击左侧"完全磁盘访问权限"。
-
移除过度授权:检查右侧列表,若终端(Terminal)、iTerm、VS Code等运行OpenClaw的程序在列表中,点击程序名称,再点击下方"-"号,移除该程序的完全磁盘访问权限(除非有特殊需求,否则一律移除)。
-
临时授权管理:若需临时让OpenClaw访问其他目录(如读取文档中的文件),可临时添加程序到列表,完成操作后立即移除,避免长期授权带来的风险。
步骤2:网络暴露限制
-
保持Gateway仅绑定本地:
json{ "gateway": { "bind": "loopback" // 仅绑定本地127.0.0.1和::1 } }bashopenclaw config set gateway.bind "loopback" -
启用网关认证:
json{ "gateway": { "auth": { "mode": "token" // 使用token认证 } } }
🛡️ 防护范围
限制运行OpenClaw的程序无法访问主机全部磁盘,仅能访问当前用户可正常访问的普通目录(配合专用工作区,进一步缩小访问范围),杜绝因过度授权导致的全网盘误删风险。
🛡️ 策略6:使用安全审计工具------定期检查安全状态
📚 原理介绍
OpenClaw内置了强大的安全审计工具,可以自动检测配置中的安全问题,并提供修复建议。定期运行安全审计可以及时发现并修复安全漏洞。
🔧 完整操作流程
步骤1:运行安全审计
-
基础安全审计:
bashopenclaw security audit -
深度安全审计(推荐):
bashopenclaw security audit --deep -
自动修复安全问题:
bashopenclaw security audit --fix # 自动修复可修复的安全问题
步骤2:审计检查的内容
安全审计会检查以下方面:
- 配置文件权限设置
- 网关网络暴露配置
- 沙箱模式配置
- 工具权限配置
- 群组策略设置
- Webhook安全配置
- 凭证管理
- Docker安全设置
- 等等
步骤3:JSON输出(用于自动化)
bash
openclaw security audit --json # 输出JSON格式的审计结果
🛡️ 防护范围
- 自动检测:自动发现配置中的安全隐患
- 自动修复:提供一键修复功能
- 全面覆盖:检查所有关键安全配置项
📦 策略7:工作区定期备份------做好兜底保障
📚 原理介绍
再好的防护也可能出现意外(如AI突破防护、人工确认失误、硬件故障),定期备份专用工作区,相当于给"虾池"准备了"应急储备池",即使工作区数据被误删或损坏,也能快速恢复。
🔧 完整操作流程
步骤1:创建备份脚本
-
创建备份脚本:打开终端,创建自动备份脚本,实现每日自动备份:
bash# 创建备份脚本文件 cat > ~/openclaw_backup.sh << 'EOF' #!/bin/bash BACKUP_DIR=~/OpenClaw_Backups DATE=$(date +%Y%m%d) mkdir -p $BACKUP_DIR # 备份工作区 rsync -av --delete ~/OpenClaw_Safe_Workspace $BACKUP_DIR/$DATE/ # 备份配置 rsync -av ~/.openclaw $BACKUP_DIR/$DATE/config/ # 删除30天前的备份 find $BACKUP_DIR -type d -mtime +30 -exec rm -rf {} + EOF # 给脚本添加执行权限 chmod +x ~/openclaw_backup.sh -
设置定时任务:让脚本每日凌晨2点自动执行(避开使用高峰):
bashcrontab -e -
配置定时任务:在弹出的编辑界面中,输入以下内容,保存并退出(按ESC,输入:wq即可保存):
bash0 2 * * * ~/openclaw_backup.sh
🛡️ 防护范围
每日自动备份专用工作区的所有内容,备份文件保存在~/OpenClaw_Backups目录,按日期命名(如20251001),可保留多个备份版本;若工作区数据丢失,可通过备份目录快速恢复,避免数据永久丢失。
👥 策略8:群组和消息权限管理------防止越权访问
📚 原理介绍
如果你将OpenClaw用于群聊场景,正确配置群组权限非常重要。默认开放的群组策略可能让未授权用户使用危险工具。
🔧 完整操作流程
步骤1:配置群组策略
三种群组策略:
open:允许任何群组最危险disabled:禁用所有群组allowlist:仅允许白名单群组推荐,默认值
- 启用白名单模式:
json
{
"channels": {
"feishu": { // 以飞书为例
"groupPolicy": "allowlist", // 仅允许白名单群组
"groupAllowFrom": ["oc_xxx"], // 群组ID白名单(格式:oc_xxx)
"groups": { // 群组配置
"oc_xxx": {
"allowFrom": ["ou_user1", "ou_user2"], // 可选:限制群组内的发送者
"requireMention": true // 需要@机器人才能回应
}
}
}
}
}
- 安全审计会自动修复:
bash
openclaw security audit --fix # 会自动将open的群组策略改为allowlist
步骤2:配置DM范围
四种DM会话隔离模式:
main:所有DM共享一个主会话(默认,有上下文泄露风险)per-peer:每个对话者一个独立会话per-channel-peer:每个渠道的每个对话者一个独立会话推荐per-account-channel-peer:每个账户-渠道-对话者一个独立会话多账户场景推荐
- 安全的DM配置:
json
{
"session": {
"dmScope": "per-channel-peer" // 每个channel-peer独立会话
}
}
- 安全审计会检查会话隔离 :
- 如果
dmScope="main"且有多个用户,会发出警告 - 建议使用
per-channel-peer或per-account-channel-peer
- 如果
🛡️ 防护范围
- 群组白名单:只允许特定群组使用OpenClaw
- 会话隔离:不同用户的会话相互隔离,防止上下文泄露
- 权限控制:控制哪些用户可以使用哪些工具
- 自动修复 :安全审计会自动将
groupPolicy="open"改为allowlist
🔑 策略9:权限最小化管控------守住安全底线
📚 原理介绍
权限最小化是所有安全防护的核心原则,即给OpenClaw授予"刚好够用"的权限,不需要的权限一律不授予,不需要访问的目录一律不开放。
🔧 完整操作流程
安全配置检查清单
使用安全审计一键检查所有配置:
bash
openclaw security audit --deep # 深度审计,检查所有安全配置
关键安全配置
json
{
"agents": {
"defaults": {
"workspace": "~/OpenClaw_Safe_Workspace",
"sandbox": {
"mode": "all", // 所有会话都启用沙箱
"backend": "docker", // 使用Docker作为沙箱后端
"scope": "agent" // 按agent隔离沙箱
}
}
},
"tools": {
"profile": "messaging", // 使用安全的工具profile
"fs": {
"workspaceOnly": true // 文件工具仅在工作区
},
"exec": {
"applyPatch": {
"workspaceOnly": true // apply_patch也限制在工作区
}
}
},
"session": {
"dmScope": "per-channel-peer" // DM会话隔离:每个渠道的每个对话者一个独立会话
},
"channels": {
"feishu": { // 飞书配置
"dmPolicy": "pairing", // DM策略:配对模式
"groupPolicy": "allowlist", // 群组策略:仅允许白名单群组
"groupAllowFrom": ["oc_xxx"], // 白名单群组ID(格式:oc_xxx)
"groups": {
"oc_xxx": {
"allowFrom": ["ou_user1", "ou_user2"], // 限制群组内的发送者
"requireMention": true // 需要@机器人才能回应
}
},
"requireMention": true // 默认需要@机器人
}
},
"gateway": {
"bind": "loopback", // 仅绑定本地127.0.0.1和::1
"auth": {
"mode": "token" // 使用token认证
}
},
"logging": {
"redactSensitive": "tools" // 敏感信息脱敏
}
}
对应CLI配置命令
bash
# 1. 配置工作区
openclaw config set agents.defaults.workspace "~/OpenClaw_Safe_Workspace"
# 2. 配置沙箱
openclaw config set agents.defaults.sandbox.mode "all"
openclaw config set agents.defaults.sandbox.backend "docker"
openclaw config set agents.defaults.sandbox.scope "agent"
# 3. 配置工具Profile
openclaw config set tools.profile "messaging"
# 4. 配置文件工具限制
openclaw config set tools.fs.workspaceOnly true
openclaw config set tools.exec.applyPatch.workspaceOnly true
# 5. 配置DM会话隔离
openclaw config set session.dmScope "per-channel-peer"
# 6. 配置飞书群组策略
openclaw config set channels.feishu.groupPolicy "allowlist"
openclaw config set channels.feishu.requireMention true
# 7. 配置网关
openclaw config set gateway.bind "loopback"
openclaw config set gateway.auth.mode "token"
# 8. 配置日志脱敏
openclaw config set logging.redactSensitive "tools"
# 9. 运行安全审计修复
openclaw security audit --deep --fix
🛡️ 防护范围
全面覆盖OpenClaw的目录访问、系统授权、AI操作等所有权限场景,通过"最小授权"减少安全漏洞,避免因权限过高导致的误操作、恶意攻击等风险,守住安全底线。
🎯 写在最后
用OpenClaw,安全配置到位才能放心。
你在使用OpenClaw时,有没有遇到过文件误操作的情况?评论区说说你的避坑经验吧!