Claude Code 学习站

Claude Code 权限模式完全指南:六种模式选哪个、怎么切换

系统梳理 Claude Code 的 default、acceptEdits、plan、auto、dontAsk、bypassPermissions 六种权限模式的差异、切换方式与 auto 模式分类器安全机制,帮助开发者在效率与掌控感之间找到平衡。

本页目录7
AI 摘要 · 已核查整理于 2026-06-13原文:Choose a permission mode(Anthropic)权限与安全
要点速览
  • 六种模式按询问频率从高到低排列:default 仅读免询 → acceptEdits 文件编辑免询 → auto 后台分类器守门 → dontAsk 仅预批工具 → bypassPermissions 完全跳过检查
  • CLI 中 Shift+Tab 循环切换模式;启动时传 --permission-mode 参数;全局默认写入 ~/.claude/settings.json 的 permissions.defaultMode 字段
  • auto 模式默认拦截 curl|bash 执行、生产部署、IAM 变更、强推 main 等高危操作,需 Claude Code v2.1.83+ 及 Opus 4.6+/Sonnet 4.6
  • bypassPermissions 跳过权限弹窗与安全检查,但显式 ask 规则仍强制弹窗、rm -rf / 等仍有熔断;仅限隔离容器或 VM 中使用,不支持 root 身份启动,Web 云端会话不支持此模式
  • .git、.zshrc、.mcp.json 等受保护路径在 bypassPermissions 之外的所有模式中写入操作永不自动批准

本文是对官方文档《Choose a permission mode》的中文要点摘要,完整内容以原文为准:https://code.claude.com/docs/en/permission-modes

六种权限模式一览

Claude Code 通过「权限模式」控制 Claude 执行每个操作(编辑文件、运行命令、发起网络请求)前是否需要弹窗确认。模式越宽松,Claude 连续工作时间越长、打断越少;模式越严格,用户对每步操作的掌控力越强。

模式无需询问即可执行适用场景
default仅读取入门体验、敏感工作
acceptEdits读取 + 文件编辑 + 常见文件系统命令边改边用 git diff 复查
plan仅读取(只规划,不修改源文件)探索代码库后再动手
auto几乎一切(后台分类器安全检查)长任务、减少弹窗干扰
dontAsk仅预先允许的工具CI/CD 流水线、锁定脚本环境
bypassPermissions一切隔离容器/虚拟机专用

:除 bypassPermissions 外,所有模式对「受保护路径」(如 .git、shell 配置文件等)的写入永不自动批准。此外,deny 规则与显式 ask 规则在所有模式下均生效——包括 bypassPermissions

切换模式的方式

  • CLI 会话中:按 Shift+Tab 循环切换 defaultacceptEditsplan(满足条件时可进入 auto
  • CLI 启动时claude --permission-mode plan
  • 全局默认:在 ~/.claude/settings.jsonpermissions.defaultMode 字段中设置
  • VS Code:点击提示框底部的模式指示器,或在扩展设置中配置 claudeCode.initialPermissionMode
  • Desktop / Web:界面内有模式选择下拉菜单;auto 需账户满足条件后才会出现

acceptEdits 模式

自动批准工作目录内的文件创建与编辑,同时自动批准 mkdirtouchrmrmdirmvcpsed 等常用文件系统命令(支持 timeoutnicenohup 等进程包装器前缀,以及 LANG=C 等安全环境变量前缀)。自动批准仅限工作目录或 additionalDirectories 范围内的路径;范围外的操作、受保护路径及其他 Bash 命令仍会弹出提示。

适合「先让 Claude 改完,再用 git diff 统一审查」的工作流:

claude --permission-mode acceptEdits

plan 模式:只探索,不修改

plan 模式下 Claude 读取文件、运行 shell 命令探索代码库,输出修改计划,但不会实际编辑源码;权限弹窗仍与 default 模式下一样生效。计划完成后用户可选择:批准并进入 auto / acceptEdits / 手动逐步审查,或继续细化计划。按 Ctrl+G 可在外部编辑器中直接修改计划内容后再让 Claude 执行。

单条提示可前缀 /plan 临时进入 plan 模式;在 .claude/settings.json 中设 defaultMode: "plan" 可将其设为项目默认。

auto 模式:后台分类器守门

auto 模式由独立分类器模型在操作执行前做安全判断,可大幅减少弹窗同时保留安全防线。只读操作与工作目录内的文件编辑(受保护路径除外)直接自动批准、不经分类器,其余操作才会送入分类器审查。分类器只读取用户消息、工具调用和 CLAUDE.md,工具调用结果会被剥离,防止文件或网页内容直接操纵分类器。

默认拦截curl | bash 类动态执行、向外部端点发送敏感数据、生产环境部署与迁移、大规模云存储删除、修改 IAM 或仓库权限、强制推送或直推 maingit reset --hard 等破坏性 git 操作、terraform destroy 等基础设施销毁。

默认放行:工作目录内的文件操作、安装 lock file 声明的依赖、只读 HTTP 请求、推送到当前分支。

前提条件(须全部满足)

  • Claude Code v2.1.83+
  • Anthropic API:Claude Opus 4.6+ 或 Sonnet 4.6;Bedrock / Vertex AI / Foundry 仅支持 Sonnet 5、Opus 4.7/4.8,且须设环境变量 CLAUDE_CODE_ENABLE_AUTO_MODE=1
  • Team/Enterprise 计划需 Owner 在后台先行开启

分类器连续拦截 3 次或累计拦截 20 次后,auto 模式自动暂停并回退为普通询问提示。在对话中主动说出的边界(如「不要推送」)会被分类器识别为阻断信号,直到用户在后续消息中解除;若要保证边界永久生效,应改用 deny 规则。

dontAsk 与 bypassPermissions 模式

  • dontAsk:自动拒绝所有会触发弹窗的工具调用,只有 permissions.allow 中预先声明的工具和只读 Bash 命令可以执行,专为无人值守的 CI 脚本设计。Web 云端会话忽略 defaultMode: "dontAsk"
  • bypassPermissions:跳过权限弹窗与安全检查,所有工具立即执行(自 v2.1.126 起也包含受保护路径写入)。但显式 ask 规则在此模式下仍会强制弹窗,针对文件系统根目录或家目录的删除(如 rm -rf /rm -rf ~)也仍有熔断提示。仅应在隔离容器或虚拟机中使用,不支持 root/sudo 身份启动,Web 云端会话不支持此模式。管理员可在 managed settings 中设 permissions.disableBypassPermissionsMode: "disable" 来禁止使用。

受保护路径

以下目录和文件在大多数模式下写入操作受到保护(dontAsk 下自动拒绝,auto 下路由分类器,其余模式弹窗确认):

  • 目录.git.vscode.idea.husky.claude.claude/worktrees 除外)、.cargo.yarn.devcontainer
  • 文件.gitconfig.gitmodules.bashrc.zshrc.npmrc.yarnrc.mcp.json.claude.json 等 shell 及工具配置文件

permissions.allow 规则无法绕过受保护路径检查——安全检查优先级高于 allow 规则。在会弹窗的模式下,针对 .claude/ 写入的提示框会额外提供「允许 Claude 在本次会话编辑自身设置」的选项,批准后该会话内后续的 .claude/ 写入将不再重复询问。