终端命令安全守卫
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a10ab3ad/cmd-guard-pro
技能介绍
解决 AI 编码助手的终端失控风险
当 AI 编码助手(如 Claude Code、Codex)接管终端并自动执行 shell 命令时,一个错误的 rm -rf 或 dd 就可能摧毁整个项目或生产环境。开发者往往在命令执行后才意识到灾难已经发生。cmd-guard 正是为了填补这一安全盲区而生。它作为本地终端的命令安全审查层,在 AI 助手执行 shell 命令之前进行拦截,通过风险评分和人工确认机制,把高危操作的控制权交还给用户。
核心能力与工作方式
cmd-guard 的工作原理是基于模式匹配和风险加权。它内置了 40 多条危险命令的正则规则(如递归修改权限、磁盘覆写等),并为每条待执行命令输出 0 到 100 的风险分。
部署时,核心步骤是将其接入 AI 助手的钩子(例如 Claude Code 的 PreToolUse)。系统提供两种运行模式:
audit-only:仅记录命令和风险分,不拦截。适合初期观察规则命中率。strict:对超过阈值(默认 70 分)的高风险命令强制拦截,并弹出确认执行? (y/N)提示。
此外,它支持通过 .cmdguard.yml 扩展自定义规则,并可通过 --batch 参数和退出码无缝接入 CI/CD 流水线。在处理包含环境变量的命令时,若变量值未知,它会输出 [需核实:变量值] 占位符而非盲目猜测,遵循不编造原则。
适用边界与安全建议
需要明确的是,cmd-guard 并非万能的沙箱。它仅针对字符串模式进行匹配,无法分析复杂命令组合的语义逻辑漏洞,也不检测命令执行后的网络外传行为。此外,它只能拦截 AI 助手发起的调用,用户在终端手动输入的命令不在其防护范围内。
在生产环境启用前,建议遵循以下最佳实践:
- 先将
~/.cmdguard/目录纳入版本控制,避免多机配置丢失。 - 在 CI/CD 中务必检查
--batch返回的退出码(0 通过,1 拦截,2 错误),而非仅解析输出文本。 - 由于日志文件为明文 JSON,可能包含敏感命令历史,请妥善保管。
使用场景
- 在 AI 助手执行前,审查一条可能清空数据库目录的 `rm -rf` 命令并决定是否放行。
- 在 CI/CD 流水线中,拦截部署脚本里可能导致服务器磁盘被覆写的 `dd` 等危险命令。
- 开启 audit-only 模式收集审计数据,在切换到 strict 前评估自定义规则的误杀率。
- 通过 strict 模式,在 AI 助手执行批量文件权限修改命令前弹出风险评分并等待人工确认。
适合人员
- 负责自动化开发的工程师,希望拦截 AI 助手自动执行的高危 shell 命令,避免误删生产环境。
- 构建 CI/CD 流水线的 DevOps 工程师,需要通过批量模式和退出码在部署环节增加安全闸门。
- 负责终端操作合规审计的安全运维人员,要求记录并拦截所有由 AI 发起的危险命令调用。
- 频繁使用 AI 编程助手的全栈开发者,需在助手批量修改文件权限等操作前增加人工确认机制。