返回顶部
p

permission-guard分层权限守卫

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

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
127
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

permission-guard

permission-guard

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

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



核心问题

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

错误做法:

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

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



权限模式

五种模式

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

规则优先级(高覆盖低)

cliArg(命令行参数)

session(当前会话)

localSettings(本地配置)

projectSettings(项目配置)

userSettings(用户配置)

policySettings(企业策略)

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



危险命令拦截

立即拦截(自动拒绝)

typescript
// 代码执行解释器
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

危险模式检测

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

自定义黑名单

可在配置中添加:

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



自动模式白名单

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

typescript
// 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



规则格式

精确匹配

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

前缀匹配(:* 语法)

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

通配符匹配

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

路径限制

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



拒绝追踪

追踪逻辑

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

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

Circuit Breaker

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



阴影规则检测

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

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

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



敏感信息检测

自动拦截的敏感内容

typescript
// 执行前扫描命令
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 集成

执行前检查

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

执行后记录

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



配置示例

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

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. 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] [Dont ask again] [Configure rules]

自动允许

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

自动拒绝

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



禁止事项

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

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 permission-guard-1775890321 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 permission-guard-1775890321 技能

通过命令行安装

skillhub install permission-guard-1775890321

下载

⬇ 下载 permission-guard v1.0.0(免费)

文件大小: 3.88 KB | 发布时间: 2026-4-12 10:57

v1.0.0 最新 2026-4-12 10:57
Initial release: 分层权限守卫系统,基于 Claude Code Permission System,包含危险命令拦截、规则优先级链、自动白名单、拒绝追踪和敏感信息检测

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部