Skip to content

kelin3296-jpg/Claude-code.sudo-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Code Sudo Skill — v2 优化版

面向 Claude Code 的显式特权工作流,用备份、日志、diff 和安全回滚来降低敏感文件修改时的后顾之忧。

v2 新特性: 并发安全 🔒 | SQLite 日志 ⚡ | 依赖分析 🔗 | 智能快照 📸 | 分层备份 💾 | 实时监控 👀

功能特性

  • 🔄 可回滚 - 所有修改都有备份,支持一键回滚
  • 📝 SQLite 日志 - 快速操作查询和过滤(新增)
  • 🔍 Diff 查看 - 修改前后对比一目了然
  • 🛡️ 安全校验 - 对象不一致时拒绝破坏性回滚
  • 🔗 依赖分析 - 自动检测操作间依赖,防止不安全回滚(新增)
  • 🤖 自动确认 - 可选的自动点击"Allow"按钮守护进程(改进)
  • 💾 分层备份 - 主+副本备份,支持多地点恢复(新增)
  • 👀 实时监控 - 检测外部文件变更并报警(新增)
  • ⚙️ 并发安全 - 文件级锁,支持多进程安全访问(新增)

安装

# 克隆仓库
git clone <repo-url> ~/.claude/skills/sudo

# 或更新现有安装
cd ~/.claude/skills/sudo
git pull

# 首次安装,迁移旧数据
python3 ~/.claude/skills/sudo/operation_logger_v2.py --migrate

快速开始

基础命令

命令 说明
/sudo 进入特权工作流
/sudo exit 退出特权工作流
/sudo status 查看当前状态和存储统计
/sudo history [n] 查看最近 n 条操作记录
/sudo diff [path|n] 查看变更差异
/sudo rollback [n] 回滚最近 n 条操作(智能依赖检查)
/sudo query [path] 快速查询(新增)
/sudo backup-clean 清理 7 天前的备份
/sudo backup-status 查看备份和存储使用情况(新增)

使用示例

# 进入特权模式
/sudo

# 修改敏感文件前记录
python3 ~/.claude/skills/sudo/sudo.py log-modify /etc/config.yaml

# 执行修改...

# 修改完成后记录
python3 ~/.claude/skills/sudo/sudo.py finalize-modify /etc/config.yaml

# 查看变更
/sudo diff /etc/config.yaml

# 如果需要回滚(自动检查依赖)
/sudo rollback 1

# 查看存储使用
/sudo status

数据存储

  • 备份目录: ~/.claude/sudo-backups/

    • 主备份位置
    • 自动按日期组织
    • 支持多地点副本
  • 日志目录: ~/.claude/sudo-logs/

    • JSONL 日志(向后兼容)
    • SQLite 数据库(operations.db
    • 自动迁移旧日志
  • 状态文件: ~/.claude/sudo-state.json

    • 工作流状态跟踪
    • 上次进入/退出时间

v2 优化详解

1. SQLite 日志系统

比原有的 JSONL 系统快 50 倍:

# 查询特定文件的所有操作
python3 ~/.claude/skills/sudo/sudo.py query /etc/config.yaml

# 自动按类型过滤
python3 ~/.claude/skills/sudo/sudo.py query --type modify --state active

2. 依赖分析

自动检测操作链,防止不安全的回滚:

# 如果操作 2 被操作 3, 4, 5 依赖,会拒绝回滚
/sudo rollback 2
# ✗ Error: Cannot rollback - depended by operations 3, 4, 5

# 但允许一起回滚整个链
/sudo rollback 2 3 4 5  # 按依赖顺序逆序回滚

3. 智能快照

对大文件友好的三层验证:

  • 快速层 (< 1ms): 比较 mtime/size/mode
  • 部分层 (< 50ms): 头尾和中间块的 hash
  • 完整层 (< 1s): 完整 SHA256

4. 实时监控

检测外部对被跟踪文件的修改:

from file_monitor import FileMonitor

monitor = FileMonitor()
monitor.register_callback(lambda path, change, old, new: print(f"Changed: {change}"))
monitor.start()

5. 并发安全

使用文件级互斥锁,支持多进程:

# 终端 1
/sudo
# 执行操作...

# 终端 2 (同时执行,完全安全)
/sudo history
/sudo status
# 自动等待 (< 30s 超时)

测试

# 运行完整的单元测试套件
python3 -m pytest tests/test_optimizations.py -v

# 或使用 unittest
python3 -m unittest tests.test_optimizations -v

# 测试覆盖:
# - SafetyRules 命令分类
# - SnapshotEngine 快照验证
# - ConcurrencyManager 并发锁
# - DependencyAnalyzer 依赖分析
# - 集成测试

迁移指南(从 v1)

自动迁移

首次运行 v2 时,会自动:

  1. ✅ 扫描所有现有 JSONL 日志
  2. ✅ 创建 SQLite 数据库
  3. ✅ 导入所有历史操作
  4. ✅ 保留原始 JSONL(备用)
# 验证迁移
python3 ~/.claude/skills/sudo/sudo.py status
# 应该看到: "operations": XXX 和 "db_path": ...

手动备份

# 备份旧日志
cp -r ~/.claude/sudo-logs ~/.claude/sudo-logs.backup

# 备份备份目录
tar -czf ~/sudo-backups-backup.tar.gz ~/.claude/sudo-backups/

配置

环境变量

# 自定义存储位置(高级用法)
export SUDO_SKILL_HOME=/custom/path

# 运行命令...
/sudo

性能调整

修改文件监控间隔:

from file_monitor import FileMonitor

monitor = FileMonitor(check_interval=0.5)  # 500ms(默认 1s)

故障排查

问题:权限拒绝

# 检查权限
ls -la ~/.claude/sudo-backups/
ls -la ~/.claude/sudo-logs/

# 修复权限
chmod 700 ~/.claude/sudo*

问题:自动确认不工作

# 检查进程状态
python3 ~/.claude/skills/sudo/auto_confirm_v2.py status

# 查看日志
tail -f ~/.claude/sudo-auto-confirm.log

# 手动重启
python3 ~/.claude/skills/sudo/auto_confirm_v2.py stop
python3 ~/.claude/skills/sudo/auto_confirm_v2.py start

问题:SQLite 数据库损坏

# 重建数据库(保留日志)
rm ~/.claude/sudo-state.json ~/.claude/sudo-logs/operations.db

# 重新启动会自动重建
/sudo status

性能基准

测试环境:macOS 12, M1 Pro, 16GB RAM

操作 时间
查询最近 100 个操作 2.3ms
1GB 文件快速检查 68ms
备份一个 500MB 文件 850ms
依赖分析 (100 操作) 12ms
快照创建 5-50ms

许可证

MIT License


更新历史

v2.0.0 (2026-04-02)

  • ✨ 新增 SQLite 日志系统
  • ✨ 新增依赖分析引擎
  • ✨ 新增实时文件监控
  • ✨ 新增分层备份策略
  • ✨ 新增并发安全管理
  • ✨ 改进自动确认鲁棒性
  • 📈 性能大幅提升 (30-50x 快)
  • 🔧 完整的向后兼容性
  • ✅ 综合单元测试

v1.0.0 (原始版本)

  • 基础备份和回滚系统
  • JSONL 日志存储
  • 自动确认守护进程
  • 基本的依赖关系检查

About

给 Claude Code 用的更稳妥 /sudo 工作流:先备份、再修改;先看 diff、再回滚。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors