Token导航 LogoToken导航TokenDH.com
研究检索敏感数据clawhub未标认证来源可访问clear审计通过

permission-guard权限守卫

Agent Skill

permission-guard 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

5,391

周安装

216

GitHub Stars

公开资料未说明

下载量

1,745
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:permission-guard(权限守卫)
来源仓库:https://github.com/sinnzen/permission-guard
安装命令:
openclaw skills install permission-guard
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install permission-guard

简介

分层权限守卫系统。基于 Claude Code Permission System 设计,包含危险命令拦截、规则优先级链、自动模式白名单和拒绝追踪。

SKILL.md

name
permission-guard
description
分层权限守卫系统。基于 Claude Code Permission System 设计,包含危险命令拦截、规则优先级链、自动模式白名单和拒绝追踪。

permission-guard

分层权限守卫 — 基于 Claude Code Permission System。

让 AI 在执行敏感操作前进行安全检查,防止意外破坏用户系统。


核心问题

AI 执行命令时,怎么保证不干坏事?

错误做法:

  • 直接执行(危险)
  • 所有都问(烦人)

正确做法: 分层权限 + 智能分类 + 自动拦截危险操作


权限模式

五种模式

模式行为适用场景
default每个命令确认一次初始学习阶段
auto信任的自动,不信任的询问日常开发
plan每次都问(Plan Mode)审查阶段
bypass完全不确认⚠️ 危险,仅测试用
dontAsk直接拒绝受限环境

规则优先级(高覆盖低)

cliArg(命令行参数)
    ↓
session(当前会话)
    ↓
localSettings(本地配置)
    ↓
projectSettings(项目配置)
    ↓
userSettings(用户配置)
    ↓
policySettings(企业策略)

企业策略 > 用户设置,企业可以锁定权限配置。


危险命令拦截

立即拦截(自动拒绝)

// 代码执行解释器
python, python3, node, deno, ruby, perl, php
npx, npm run, yarn run, pnpm run, bun run, bunx

// Shell
bash, sh, zsh, fish, ssh
eval, exec, xargs, sudo

// 管道执行
curl | bash, wget | sh

危险模式检测

// 自动拒绝宽泛规则
Bash(python:*)    → 拦截,等于允许任意代码执行
Bash(node:*)      → 拦截
Bash(curl:*)     → 拦截,可能用于下载恶意脚本

自定义黑名单

可在配置中添加:

{
  "dangerousCommands": [
    "rm -rf /",
    "dd if=* of=/dev/*",
    ":(){ :|:& };:"  // Fork bomb
  ]
}

自动模式白名单

auto 模式下自动允许的安全命令:

// Git 读取操作
git status, git diff, git log, git show, git branch
git diff --staged, git diff HEAD, git remote -v

// 文件读取
ls, ll, cat, head, tail, grep, find, pwd

// 目录操作
cd, mkdir -p, tree, stat, file

// 开发工具
npm --version, node --version, git --version
python3 --version, docker ps, docker images

// 网络检查
ping, curl -I, wget --spider

规则格式

精确匹配

{
  "tool": "Bash",
  "command": "git push origin main",
  "behavior": "allow"
}

前缀匹配(:* 语法)

{
  "tool": "Bash",
  "command": "git:*",
  "behavior": "ask"
}

通配符匹配

{
  "tool": "Bash",
  "command": "git commit *",
  "behavior": "allow"
}

路径限制

{
  "tool": "Bash",
  "command": "rm *",
  "cwd": "/Users/julian/project",
  "behavior": "allow"
}

拒绝追踪

追踪逻辑

// 追踪每个命令被拒绝的次数
denialTracking = {
  'rm -rf node_modules': { denyCount: 3, lastDeny: timestamp },
  'git push': { denyCount: 5, lastDeny: timestamp }
}

// 如果 denyCount > 阈值 → 给出建议
if (denyCount >= 3) {
  suggest("建议将此命令加入白名单或调整规则")
}

Circuit Breaker

// 连续失败 3 次 → 降级到询问模式,不阻塞
if (consecutiveFailures >= 3) {
  fallbackToAsk()
}

阴影规则检测

问题: 高优先级规则可能"遮住"低优先级规则。

// 用户设置了: git push → allow
// 项目设置了: git * → deny
// 结果:git push 被 deny,但用户不知道为什么

// 检测并警告
shadowedRules = detectShadowedRules(userRules, projectRules)
if (shadowedRules.length > 0) {
  warn("以下规则被覆盖:\
" + shadowedRules.map(...).join("\
"))
}

敏感信息检测

自动拦截的敏感内容

// 执行前扫描命令
scanForSecrets(command) → {
  detected: [
    { type: 'api_key', pattern: 'sk-[a-zA-Z0-9]{20,}', value: '***' },
    { type: 'password', pattern: '-p\\s+\\S+', value: '***' },
    { type: 'private_key', pattern: '-----BEGIN.*PRIVATE KEY-----', value: '***' }
  ]
}

// 如果检测到 → 拒绝执行并警告

权限检查流程

用户请求执行命令
         ↓
    解析命令和工具
         ↓
    检查危险命令黑名单
    ├── 是 → 自动拒绝 + 警告
    └── 否 → 继续
         ↓
    匹配规则(按优先级)
    ├── 有匹配规则 → 按规则执行
    └── 无匹配 → 进入自动模式
         ↓
    自动模式分类
    ├── 白名单 → 自动允许
    ├── 黑名单 → 自动拒绝
    └── 其他 → 询问用户
         ↓
    用户响应 → 记录到规则/拒绝追踪

Hook 集成

执行前检查

// Pre-execution hooks
preCheck = [
  dangerousPatternHook,   // 危险模式检测
  ruleMatchingHook,       // 规则匹配
  secretScanningHook,    // 敏感信息扫描
  sandboxHook           // 沙箱检查
]

执行后记录

// Post-execution hooks
postCheck = [
  logPermissionResult,   // 记录到日志
  updateAutoModeRules,   // 更新自动模式规则
  denialTracking        // 更新拒绝计数
]

配置示例

用户配置(~/.openclaw/permissions.json)

{
  "defaultMode": "auto",
  "dangerousCommands": [
    "rm -rf /",
    "rm -rf /home/*",
    ":(){ :|:& };:"
  ],
  "autoAllow": [
    "git status",
    "git diff",
    "npm test"
  ],
  "autoDeny": [
    "curl | bash",
    "wget -O- | sh"
  ],
  "rules": [
    {
      "tool": "Bash",
      "command": "git push",
      "behavior": "ask"
    },
    {
      "tool": "Bash",
      "command": "npm run deploy",
      "behavior": "ask"
    }
  ]
}

使用时机

必须进行权限检查的场景:

  1. 执行任何 Shell 命令(Bash/PowerShell)
  2. 删除、修改文件
  3. 网络请求(curl/wget)
  4. 系统配置修改
  5. 安装依赖(npm install / pip install)
  6. Git push / force push
  7. Docker 操作
  8. 任何涉及 sudo 的命令

响应格式

询问用户

🔐 Permission required

Tool: Bash
Command: git push origin main
Reason: 即将推送到远程仓库

[Allow] [Deny] [Don't ask again] [Configure rules]

自动允许

✅ Auto-allowed: git status
(匹配自动模式白名单)

自动拒绝

🚫 Auto-denied: rm -rf /*
Reason: 危险命令,已拦截

禁止事项

不要在未检查权限的情况下执行删除操作 ❌ 不要执行包含敏感信息(API keys、密码)的命令 ❌ 不要忽略危险命令拦截 ❌ 不要bypass 模式下执行非测试操作 ❌ 不要curl | bash 类型的命令通过 ❌ 不要执行 eval 类型的动态代码命令

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

75.97%
按下载量换算1,326

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills