s04
权限系统
核心引擎层多模式权限检查与安全审批
全局模式 → 工具级规则 → 命令级分析 三层防线Bash 工具的安全分析能解析命令语义,区分只读操作和破坏性操作
多模式权限检查与安全审批
全局模式 → 工具级规则 → 命令级分析 三层防线Bash 工具的安全分析能解析命令语义,区分只读操作和破坏性操作
Claude Code 可以执行 Shell 命令、读写文件、甚至 git push。如果没有权限系统,一个错误的 rm -rf 或 git push --force 就可能造成灾难性后果。权限系统需要在安全性和生产力之间取得平衡——太严格会让用户不停地点「允许」,太宽松则有安全风险。
权限模式定义 — 从最严格到最宽松的五级权限
export const PERMISSION_MODES = [
'default', // 每次工具调用都需用户审批
'plan', // 只读操作自动通过,写操作需审批
'auto', // 基于分类器自动判断,仅高风险操作需审批
'bypassPermissions', // 跳过所有权限检查(危险)
] as const;
export type PermissionMode = typeof PERMISSION_MODES[number];Bash 命令安全分析 — 解析命令语义判断风险等级
// commandSemantics.ts 解析 bash 命令的语义:
// - 识别破坏性操作:rm -rf, git reset --hard, drop table
// - 识别只读操作:ls, cat, git status, grep
// - 分析管道链中每个命令的风险
// - 检测路径是否在工作目录之外
// destructiveCommandWarning.ts 对高风险命令生成警告消息