Skip to content

小龙虾 OpenClaw 权限管理完全指南:6 大权限类型与安全配置(2026 版)

2026年4月8日

OpenClaw 技能权限管理最佳实践:安全配置与风险控制指南

给 AI 太多权限,等于把家门钥匙交给陌生人。权限管理是 OpenClaw 安全的核心,用最小权限原则,让 AI 只干该干的事。

为什么权限管理重要?

真实风险案例

风险后果原因
文件误删重要数据丢失给了 file_write 但没限制路径
敏感泄露API 密钥被读取给了 file_read 但没排除敏感文件
命令注入系统被破坏给了 execute 但没限制命令
网络攻击内网被扫描给了 network 但没限制目标

权限管理原则

最小权限原则 = 只给必要的权限 + 只在必要范围内使用

权限类型详解

六大核心权限

权限英文名能力风险等级
文件读取file_read读取任意文件🔴 高
文件写入file_write创建、修改、删除文件🔴 高
网络访问networkHTTP 请求、网络连接🟡 中
命令执行execute执行 Shell 命令🔴 高
浏览器操作browser控制浏览器、截图🟡 中
记忆访问memory访问长期记忆、知识库🟢 低

权限能力详解

file_read

json
{
  "permission": "file_read",
  "abilities": [
    "读取文件内容",
    "列出目录结构",
    "搜索文件"
  ],
  "risks": [
    "读取敏感配置文件(.env, credentials)",
    "读取私钥文件(id_rsa, .pem)",
    "读取数据库文件"
  ]
}

file_write

json
{
  "permission": "file_write",
  "abilities": [
    "创建新文件",
    "修改现有文件",
    "删除文件",
    "重命名文件"
  ],
  "risks": [
    "覆盖重要文件",
    "删除关键数据",
    "写入恶意代码"
  ]
}

network

json
{
  "permission": "network",
  "abilities": [
    "发起 HTTP 请求",
    "WebSocket 连接",
    "DNS 查询"
  ],
  "risks": [
    "访问内网敏感服务",
    "发送敏感数据到外部",
    "DDoS 攻击参与"
  ]
}

execute

json
{
  "permission": "execute",
  "abilities": [
    "执行 Shell 命令",
    "运行脚本",
    "调用系统工具"
  ],
  "risks": [
    "执行危险命令(rm -rf /)",
    "提权攻击",
    "安装恶意软件"
  ]
}

browser

json
{
  "permission": "browser",
  "abilities": [
    "打开浏览器",
    "自动点击、输入",
    "截图、录屏"
  ],
  "risks": [
    "登录敏感网站",
    "泄露浏览器 Cookie",
    "自动化攻击"
  ]
}

memory

json
{
  "permission": "memory",
  "abilities": [
    "读取长期记忆",
    "写入记忆内容",
    "搜索知识库"
  ],
  "risks": [
    "读取其他用户的记忆",
    "污染记忆数据"
  ]
}

权限配置方法

方法一:全局配置

~/.openclaw/openclaw.json 中配置默认权限:

json
{
  "permissions": {
    "default_allow": ["memory"],
    "default_deny": ["execute"],
    "require_confirmation": ["file_write", "network"]
  }
}

方法二:技能级配置

在技能的 SKILL.md 中声明权限:

yaml
---
name: 文件整理助手
permissions:
  - file_read
  - file_write
permission_scope:
  file_read:
    paths: ["~/Documents", "~/Downloads"]
  file_write:
    paths: ["~/Documents/organized"]
    exclude: ["*.env", "*.key", "credentials/*"]
---

方法三:运行时限制

使用命令行参数限制权限:

bash
# 只允许读取,禁止写入
openclaw run --allow file_read --deny file_write

# 需要确认才能执行
openclaw run --confirm file_write,network

风险评估矩阵

按权限组合评估

权限组合风险等级典型场景
无权限🟢 安全纯聊天、知识问答
memory🟢 低风险记忆管理、知识库
file_read🟡 中风险代码审查、文档分析
file_read + file_write🔴 高风险文件处理、代码生成
network🟡 中风险网页抓取、API 调用
network + file_write🔴 高风险下载文件、数据同步
execute🔴 极高风险系统管理、自动化部署
全权限🔴 极高风险完全控制,慎用

按技能类型评估

技能类型推荐权限风险控制
聊天助手memory
代码助手file_read, file_write限制路径
网页抓取network, browser限制域名
系统运维execute需确认 + 限制命令
数据分析file_read, network限制数据源

安全配置最佳实践

实践一:白名单模式

只允许访问指定路径:

json
{
  "permission_scope": {
    "file_read": {
      "mode": "whitelist",
      "paths": [
        "~/Projects/my-app",
        "~/Documents/reports"
      ]
    },
    "file_write": {
      "mode": "whitelist",
      "paths": ["~/Projects/my-app/output"]
    }
  }
}

实践二:黑名单排除

禁止访问敏感文件:

json
{
  "permission_scope": {
    "file_read": {
      "exclude": [
        ".env",
        "*.key",
        "*.pem",
        "credentials/**",
        ".ssh/**",
        ".git/**"
      ]
    }
  }
}

实践三:命令限制

限制可执行的命令:

json
{
  "permission_scope": {
    "execute": {
      "allowed_commands": [
        "git",
        "npm",
        "node"
      ],
      "denied_commands": [
        "rm",
        "sudo",
        "chmod",
        "chown"
      ]
    }
  }
}

实践四:网络限制

限制可访问的域名:

json
{
  "permission_scope": {
    "network": {
      "allowed_domains": [
        "api.openai.com",
        "api.deepseek.com",
        "github.com"
      ],
      "denied_domains": [
        "localhost",
        "127.0.0.1",
        "192.168.*",
        "10.*"
      ]
    }
  }
}

实践五:确认机制

敏感操作需要用户确认:

json
{
  "permissions": {
    "require_confirmation": {
      "file_write": {
        "actions": ["delete", "overwrite"],
        "message": "确认删除/覆盖文件?"
      },
      "execute": {
        "commands": ["rm", "sudo"],
        "message": "确认执行此命令?"
      }
    }
  }
}

不同场景的权限配置

场景一:代码助手

json
{
  "skill": "code-assistant",
  "permissions": ["file_read", "file_write"],
  "permission_scope": {
    "file_read": {
      "paths": ["~/Projects"],
      "exclude": [".env", "*.key"]
    },
    "file_write": {
      "paths": ["~/Projects"],
      "exclude": [".git/**", ".env"]
    }
  }
}

场景二:网页抓取

json
{
  "skill": "web-scraper",
  "permissions": ["network", "browser", "file_write"],
  "permission_scope": {
    "network": {
      "allowed_domains": ["*"],
      "denied_domains": ["localhost", "127.0.0.1"]
    },
    "file_write": {
      "paths": ["~/Downloads/scraped"]
    }
  }
}

场景三:系统运维

json
{
  "skill": "system-admin",
  "permissions": ["execute", "file_read"],
  "permission_scope": {
    "execute": {
      "allowed_commands": ["systemctl", "docker", "nginx"],
      "denied_commands": ["rm -rf", "sudo"]
    }
  },
  "require_confirmation": true
}

场景四:知识问答

json
{
  "skill": "qa-assistant",
  "permissions": ["memory"],
  "permission_scope": {}
}

安全检查清单

安装新技能时检查

  • 技能来源可信(官方或知名开发者)
  • 已阅读 SKILL.md 中的权限声明
  • 权限与功能匹配(不申请多余权限)
  • 已配置权限范围限制
  • 已启用敏感操作确认

定期安全审计

bash
# 查看所有技能权限
openclaw skill list --show-permissions

# 检查敏感权限使用情况
openclaw audit --permission execute,file_write

# 查看权限日志
openclaw logs --filter "permission_denied"

检查命令示例

bash
# 列出所有有 execute 权限的技能
openclaw skill list --has-permission execute

# 检查文件访问权限配置
openclaw config check --permission file_read

# 查看最近的权限拒绝记录
openclaw logs --filter "permission" --level warn

常见安全隐患与解决

隐患一:过度授权

问题: 给技能所有权限 "省事"

json
// ❌ 危险配置
{
  "permissions": ["*"]
}

解决: 按需授权

json
// ✅ 安全配置
{
  "permissions": ["file_read"],
  "permission_scope": {
    "file_read": {
      "paths": ["~/Documents"]
    }
  }
}

隐患二:路径未限制

问题: 允许访问整个文件系统

json
// ❌ 危险配置
{
  "permissions": ["file_read"]
  // 没有限制路径
}

解决: 限制访问范围

json
// ✅ 安全配置
{
  "permissions": ["file_read"],
  "permission_scope": {
    "file_read": {
      "paths": ["~/Projects/my-app"]
    }
  }
}

隐患三:命令白名单过宽

问题: 允许所有命令

json
// ❌ 危险配置
{
  "permission_scope": {
    "execute": {
      "allowed_commands": ["*"]
    }
  }
}

解决: 精确限制命令

json
// ✅ 安全配置
{
  "permission_scope": {
    "execute": {
      "allowed_commands": ["git status", "git log", "npm run build"]
    }
  }
}

隐患四:未启用确认机制

问题: 危险操作静默执行

解决: 启用确认

json
{
  "permissions": {
    "require_confirmation": {
      "file_write": true,
      "execute": true
    }
  }
}

社区技能安全审核

审核要点

检查项关注点
权限声明是否申请了不必要的权限
代码审查是否有可疑的网络请求
数据处理是否会泄露敏感数据
更新频率是否频繁更新权限

使用 skill-vetter 审核

bash
openclaw skill vet <skill-name>

输出示例:

安全审核报告:my-skill

权限检查:
✅ file_read - 合理,用于读取配置文件
⚠️ network - 建议限制域名
❌ execute - 建议添加确认机制

风险等级:中等
建议:添加网络域名白名单,启用执行确认

总结

层级措施
默认权限只给最低权限(memory)
技能权限按需声明,不申请多余权限
范围限制白名单 + 黑名单双重限制
确认机制敏感操作需用户确认
定期审计检查权限使用情况

权限管理核心原则:

  1. 最小权限:只给必要的权限
  2. 范围限制:限定操作范围
  3. 确认机制:危险操作需确认
  4. 定期审计:检查权限使用

安全不是一次性的配置,而是持续的过程。每安装一个新技能,都应该审视其权限申请,确保在可控范围内执行操作。宁可多点确认,不可一次放权。

不要孤军奋战啦!

加入微信群一起学习交流 AI

与大神一起使用 OpenClaw、Hermes、Claude Code、Seedance 2.0、GPT-Image-2 等

微信公众号

扫码关注微信公众号
私信 "加群",将自动获取微信群二维码

探索 AI 世界,掌握智能未来