ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Claude Code 权限系统完全指南:default 到 bypassPermissions 的 4 种模式如何守住终端安全

Claude Code 权限系统完全指南:default 到 bypassPermissions 的 4 种模式如何守住终端安全 Claude Code 权限系统完全指南default 到 bypassPermissions 的 4 种模式如何守住终端安全【免费下载链接】claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.项目地址: https://gitcode.com/gh_mirrors/claudecode5/claude-codeClaude Code 是运行在终端里的 Agentic 编程助手它能读写文件、执行命令、处理 git 工作流。而它的**权限系统Permission System**就是这台自动驾驶车的方向盘——决定哪些操作可以直接做、哪些必须先问你。本文带你一次看懂 4 种权限模式default、plan、acceptEdits、bypassPermissions帮你既提效又不失控。一、权限系统到底在管什么在 Claude Code 中每一次工具调用都会先经过统一权限检查然后才真正执行。这个检查器位于 src/hooks/toolPermission/核心流程是Query Engine 触发某个工具如 Bash、FileEdit工具执行checkPermissions(input, context)权限处理器比对你配置的规则没被自动放行时就在终端或 IDE里弹窗询问每个工具的判定结果只有三种源码定义在 src/types/permissions.ts 中行为含义allow直接放行ask弹窗询问用户deny直接拒绝并给出理由 你可以把它理解成手机 App 的权限申请相机要么每次询问要么始终允许要么拒绝。二、4 种权限模式逐个拆解4 种对外模式集中定义在 src/types/permissions.ts 的EXTERNAL_PERMISSION_MODES中1. default默认模式—— 每次危险操作都问你对每一个可能有破坏性的操作都先询问适合新手、生产环境、不熟悉的仓库优点最安全代价审批疲劳2. plan计划模式—— 先看完整计划一次批量批准Claude 先把完整执行计划摆给你看你只确认一次即可适合让我先想想你要干什么的场景比如大规模重构进入 plan 模式时系统会记住之前的模式prePlanMode退出后自动恢复3. acceptEdits —— 文件编辑免确认命令仍要问文件读写/编辑类操作自动放行终端显示⏵⏵双箭头标识但执行 shell 命令等高风险操作仍会询问适合改代码改到手软的连续开发场景4. bypassPermissions —— 全自动放行谨慎使用自动批准所有操作界面以红色警示色显示官方文档明确标注Auto-approves all operations (dangerous — for trusted environments)只建议在可信环境使用Docker 容器、一次性沙箱、完全备份过的分支源码里专门有一个急停开关bypassPermissionsKillswitch.ts可在服务端强制关闭该模式4 种模式的行为对照表摘自官方文档 docs/subsystems.md模式行为风险等级default每个潜在破坏性操作都询问 低plan展示完整计划一次性批准 低acceptEdits文件编辑自动批准 中bypassPermissions全部自动批准 高三、最快切换权限模式的方法按 ShiftTab不想改配置文件在 REPL 界面里连按 ShiftTab就能循环切换模式。循环逻辑写在 getNextPermissionMode.tsdefault → acceptEdits → plan → bypassPermissions → default切换时界面会显示当前模式名称Default / Plan / Accept / Bypass配合颜色提示让你随时知道现在处于哪种信任级别。其他方式命令行参数启动时加--permission-mode直接指定模式会话内命令使用 src/commands/permissions/ 下的/permissions命令管理规则settings.json把defaultMode写进配置长期生效四、权限规则用通配符精确控制哪些命令能跑模式决定大方向规则决定细节。Claude Code 支持用通配符规则精确到单个命令或路径例如见 docs/tools.mdBash(git *) # 放行所有 git 命令不再询问 Bash(npm test) # 只放行 npm test 这一条 FileEdit(/src/*) # 允许编辑 src/ 下任何文件 FileRead(*) # 允许读取任意文件这些规则可以来自多个层级见 PermissionRule 定义userSettings用户全局配置projectSettings项目级.claude/settings.json可提交到仓库团队共享localSettings本地私有配置session仅当前会话生效 最佳实践把git *、npm test这类高频安全命令加进项目规则日常开发 90% 的询问都能消失而真正危险的操作依然会被拦下。五、安全细节系统还给你上了几道保险危险模式检测dangerousPatterns.ts 内置危险命令识别某些模式切换时会主动剥离危险规则权限解释器permissionExplainer.ts 会给出 LOW/MEDIUM/HIGH 风险等级和文字说明告诉你为什么这一步要问你路径校验pathValidation.ts 防止越出工作目录、防止.git、shell 配置文件等敏感路径被绕过权限日志permissionLogging.ts 记录每次判定事后可审计实验性 auto 模式源码中还藏着由 ML 分类器自动决策的auto模式yoloClassifier.ts目前通过特性开关控制未对外开放六、新手快速上手清单✅ 第一次用保持default熟悉每种询问在问什么 ✅ 连续改代码切到acceptEdits告别重复点确认 ✅ 大动作前先切plan看完整方案批准后再执行 ✅ 沙箱/容器里可以开bypassPermissions全速跑 ❌ 生产机、未备份的仓库永远别开 bypass 模式七、核心文件路径速查模块路径权限类型与模式定义src/types/permissions.ts模式配置与颜色标识src/utils/permissions/PermissionMode.tsShiftTab 循环切换src/utils/permissions/getNextPermissionMode.ts权限上下文每次检查的输入src/hooks/toolPermission/PermissionContext.ts权限判定处理器src/hooks/toolPermission/handlers/工具权限模型文档docs/tools.md子系统详解docs/subsystems.md一句话总结权限系统 4 种模式定信任级别 通配符规则管具体命令。日常开发用default/acceptEdits大重构前用plan只有沙箱环境才考虑bypassPermissions——守住终端安全从选对模式开始。【免费下载链接】claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.项目地址: https://gitcode.com/gh_mirrors/claudecode5/claude-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表