心 智 七 篇 · Seven Mental Models
← Knowledge Atlas · 概念

权限模式(Permission Modes)

六种权限模式:default/acceptEdits/plan/auto/dontAsk/bypassPermissions,自主度谱系,auto 模式分类器
概念 · PERMISSION MODES · Claude Code · 自主度-安全性权衡

权限模式

Permission Modes — 全局审批策略开关,决定工具调用的默认处理方式

权限模式设定 agent 的”底色”——在此基础上叠加具体 allow/ask/deny 规则。六种模式从最保守到最激进形成自主度谱系。核心原则:deny-first 语义在所有模式下均成立。

模式行为适用场景
dontAsk自动拒绝,仅预授权工具高安全,最小权限面
default首次使用时提示确认日常开发
plan只读分析,不可修改执行方案制定 / 代码审查
acceptEdits自动接受文件编辑信任文件修改场景
auto分类器自动验证操作意图受信任的自动化
bypassPermissions跳过大部分提示OS 级隔离容器(危险)
auto 分类器
读取 autoMode 配置(environment/allow/soft_deny);allow/soft_deny 替换全部默认规则
受保护目录
即使 bypass 模式,.git/.claude/.vscode 仍触发提示——防损坏 repo 状态
组织封锁
托管设置可禁用 bypassPermissions / auto 模式——作用域层次典型用例
→ Harness Engineering · Guardrails · Agent SandboxingAnthropic Claude Code (2024)

权限模式(Permission Modes)

定义

权限模式是 Claude Code 的全局审批策略开关——通过 defaultMode 配置,决定工具调用的默认处理方式,在此基础上叠加具体的 allow/ask/deny 规则。

六种模式

模式描述典型使用场景
default标准行为:每个工具首次使用时提示确认日常开发,需要人工审批
acceptEdits自动接受文件编辑权限(受保护目录除外)信任文件修改,但仍审查命令
plan计划模式:只能分析,不能修改文件或执行命令只读探索、方案制定阶段
auto自动审批,后台分类器验证操作意图受信任的自动化场景(研究预览)
dontAsk自动拒绝,仅预授权工具可用高安全场景,最小权限面
bypassPermissions跳过权限提示(受保护目录仍提示)隔离容器/VM,危险

模式设计哲学:自主度与安全性的权衡

六种模式形成一个自主度谱系

← 更多人工控制                    更多自动化 →
dontAsk — default — acceptEdits — auto — bypassPermissions
                    plan(只读分支)
  • plan 是特殊的只读分支——agent 可以分析代码、提出方案,但无法执行。适合方案评审阶段。
  • auto 引入了分类器模型作为”自动监察员”,在减少提示的同时维持安全性。与其他模式的区别在于智能而非规则驱动。
  • bypassPermissions 是”核选项”——完全信任 agent,仅适合已有 OS 级隔离的环境。

bypassPermissions 的保护边界

即使在 bypassPermissions 模式下,以下目录的写操作仍触发提示:

  • .git.claude.vscode.idea.husky(防止意外损坏 repo 状态、编辑器配置、git hooks)

.claude/commands.claude/agents.claude/skills 豁免——Claude 在创建技能、子 agent 和命令时需要写这些路径。

禁用方式:在托管设置中设置 permissions.disableBypassPermissionsMode: "disable" 可防止用户启用此模式——这是作用域层次的典型用例。

auto 模式的分类器机制

auto 模式内置分类器读取 autoMode 配置:

{
  "autoMode": {
    "environment": ["Source control: github.com/your-org"],
    "allow": ["Deploying to staging is allowed: isolated from production"],
    "soft_deny": ["Never modify infra/terraform/prod/"]
  }
}

重要约束

  • allowsoft_deny 配置会替换全部默认规则,而非叠加
  • 分类器只读取用户设置、.claude/settings.local.json 和托管设置——不读取共享项目设置(防止 repo 注入自己的 allow 规则)
  • 用户的 allow 条目可以覆盖组织的 soft_deny,但组织的 permissions.deny 无法被用户覆盖

安全管理工具

claude auto-mode defaults  # 查看内置规则
claude auto-mode config    # 查看当前生效配置
claude auto-mode critique  # AI 审查自定义规则质量

禁用危险模式

组织可在托管设置中封锁危险模式:

  • permissions.disableBypassPermissionsMode: "disable" — 禁用 bypassPermissions
  • permissions.disableAutoMode: "disable" — 禁用 auto 模式

与规则系统的关系

权限模式设定”底色”,allow/ask/deny 规则在其上叠加:

  • dontAsk 模式默认拒绝,但 allow 规则定义的工具仍可使用
  • bypassPermissions 跳过大部分提示,但 deny 规则仍生效
  • deny-first 语义在所有模式下均成立

相关概念

References

  • sources/anthropic_official/claude-code-permissions.md