Appearance
OpenClaw安全配置
OpenClaw安全配置核心原则:exec开审批防止误操作、message只传自己避免冒名发送、高权限管理按风险分级——25个Tools按高/中/低风险分类,帮你快速判断开不开。
OpenClaw装好了,但你可能跟我一样懵:
Tools散在不同文件,Skills默认自动加载——你甚至不知道有些东西已经开了。
全开怕出事,全关等于白装。
⚠️ 先说一个真实案例
我见过有人没开审批,AI跑了个 rm -rf,整个项目没了。
这不是开玩笑。
exec让OpenClaw能执行任何shell命令。"任何"是关键字——它能帮你装套件,也能删掉整台机器。
所以这篇不讲"怎么开",讲"怎么安全地开"。
🎯 核心概念:Tools vs Skills
很多人搞混这两个,其实很简单:
| 概念 | 是什么 | 决定什么 |
|---|---|---|
| Tools | 器官 | "能不能"做某件事 |
| Skills | 教科书 | "怎么组合Tools"做任务 |
举例:你装了obsidian Skill,OpenClaw知道怎么组织笔记——但如果没开write Tool,它根本写不了文件。
Skill只是说明书,真正的开关在Tools。
📊 Tools风险分级:先看这个再决定开不开
我把25个Tools按风险分三类:
🔴 高风险Tools(必须审批)
| Tool | 能干什么 | 最坏情况 |
|---|---|---|
| exec | 执行任何shell命令 | rm -rf 删掉整个系统 |
| write/edit | 修改文件 | 覆盖重要配置文件 |
| browser | 操作浏览器 | 自动下单、支付 |
| message | 发消息到各平台 | 用你的名义发任何消息 |
我的底线:
- exec必须开审批
- browser不能让它碰支付页面
- message只发给自己
🟡 中风险Tools(按需开启)
| Tool | 能干什么 | 需要注意 |
|---|---|---|
| memory系列 | 记住跨session信息 | 存了什么要心里有数 |
| web_fetch | 抓取网页内容 | 可能访问敏感内容 |
| image | 看懂图片 | 图片内容会被AI读取 |
🟢 低风险Tools(几乎可以全开)
| Tool | 能干什么 | 风险 |
|---|---|---|
| read | 只读文件 | 不能改,风险低 |
| web_search | 搜索 | 只是搜索,不访问具体内容 |
| process | 管理进程 | 只看不改 |
🔧 高风险Tools详解
1. exec:必须开审批
exec是最强大的Tool,也是最危险的。
json
{
"approvals": {
"exec": { "enabled": true }
}
}开了审批会怎样?
每个命令执行前,OpenClaw会告诉你它要干什么。你确认了才会执行。
会烦吗?会。但这是保护你的最后一道防线。万一AI判断错了,或者被攻击了,你能拦住它。
说实话,审批一开始会很烦。但习惯之后,你会发现它其实是在帮你review AI的判断。
2. message:只发给自己
message能让OpenClaw发消息到Discord、Slack、Telegram、WhatsApp、iMessage。
我的原则:只发给自己,谁都不行。
为什么?因为AI用你的名字发出去的消息,你收不回来。
万一它理解错意思、语气不对、甚至被攻击骗去发消息——后果你自己承担。
我用OpenClaw做什么?
- 每天早上8点,Telegram收到整理好的资料
- 任务通知、待办提醒
- 全部是发给自己
3. browser:最后一步自己来
browser让OpenClaw操作Chrome——点按钮、填表单、截图。
我会让它帮我:
- 上网比价
- 整理规格
- 把东西加到购物车
但结账一定自己来。
涉及付款的"最后一里"不交给AI,这是我的底线。
📋 Skills:53个默认全开,用白名单限制
bundled Skills有个坑:默认全部自动载入。
只要对应的CLI工具已安装在系统上,该Skill就会自动启用。
不是"不装就没有",而是"不关就全开"。
如何限制只开需要的?
json
{
"skills": {
"allowBundled": [
"gog", "github", "tmux", "session-logs",
"weather", "summarize", "clawhub",
"healthcheck", "skill-creator"
]
}
}用 allowBundled 白名单,只保留你需要的。
🛠️ 我的配置清单
我的OpenClaw跑在腾讯云服务器上,用Telegram操作。
Tools(25个开了21个)
判断原则:想不到使用场景的就不开。
json
{
"tools": {
"allow": [
"read", "write", "edit", "apply_patch",
"exec", "process",
"web_search", "web_fetch",
"browser", "image",
"memory_search", "memory_get",
"sessions_list", "sessions_history", "sessions_send", "sessions_spawn", "session_status",
"message", "cron", "gateway", "agents_list"
],
"deny": ["nodes", "canvas", "llm_task", "lobster"]
},
"approvals": {
"exec": { "enabled": true }
}
}关了4个:nodes(想不到场景)、canvas(用不到)、llm_task/lobster(没用工作流引擎)。
Skills(53个只开9个)
json
{
"skills": {
"allowBundled": [
"gog", "github", "tmux", "session-logs",
"weather", "summarize", "clawhub",
"healthcheck", "skill-creator"
]
}
}gog管Email和日历、github管repo、其余是日常工作和系统管理用的基础工具。
🚫 常见配置错误Top5
| 错误 | 后果 | 正确做法 |
|---|---|---|
| exec不开审批 | AI可能误删文件 | 必须开审批 |
| message发给所有人 | 可能被冒名发送 | 只发给自己 |
| Skills不限制 | 默认全开 | 用allowBundled白名单 |
| 开了所有Tools | 攻击面太大 | 按需开启 |
| 配置文件放公开仓库 | 密钥泄露 | 放.gitignore |
🎯 不同场景的配置建议
开发者配置
json
{
"tools": {
"allow": ["read", "write", "edit", "exec", "process", "web_search", "browser", "github"]
},
"approvals": { "exec": { "enabled": true } }
}内容创作者配置
json
{
"tools": {
"allow": ["read", "write", "edit", "web_search", "web_fetch", "browser", "image"]
}
}个人助理配置
json
{
"tools": {
"allow": ["read", "web_search", "web_fetch", "memory_search", "memory_get", "message", "cron"]
}
}💡 安全配置三原则
打开你的openclaw.json,从这三条开始:
- 想不到场景的就不开
- 能力越大,管控越严——exec开审批,message只发给自己
- 最后一步自己来——结账、发消息、发文,收不回来的操作不交给AI
我的配置可以直接当起点,复制上去再根据自己的需求删减。
