Claude Code 权限模式完全指南(2026 最新版):6 种模式与配置详解
一、前言
Claude Code 每次编辑文件、执行命令或发起网络请求时,都会暂停并请求你批准。权限模式决定了这个暂停发生的频率——默认模式让你逐一审查每个操作,而宽松模式让 Claude 以更长的不间断工作段运行,完成后汇报结果。
最新版 Claude Code(v2.1.158)新增了 Auto Mode(AI 自动安全审查)和多项 Plan Mode 增强功能。本文基于官方最新文档,全面介绍所有权限模式。
二、6 种权限模式总览
| 模式 | 免确认操作 | 适用场景 |
|---|---|---|
| Default(默认) | 仅读取操作 | 新手、敏感项目 |
| Accept Edits | 读取 + 文件编辑 + 常用文件系统命令 | 日常开发 |
| Plan Mode | 仅读取(禁止编辑) | 代码审查、方案分析 |
| Auto Mode | 所有操作(AI 安全审查) | 长任务、减少弹窗疲劳 |
| Don’t Ask | 仅预批准的工具 | CI/CD、受限环境 |
| Bypass Permissions | 所有操作(无安全检查) | 隔离容器/VM |
重要:除 Bypass 外,所有模式对受保护路径(.git、.claude、.env 等)的写入都不会自动批准。
三、模式切换方式
3.1 CLI 会话中切换
按 Shift+Tab 循环切换:default → acceptEdits → plan
可选模式扩展:
bypassPermissions:需要启动时加--permission-mode bypassPermissions才会出现在循环中auto:满足账号要求后出现在循环中dontAsk:不在循环中,只能通过命令行启动
3.2 启动时指定
1 | # 指定模式启动 |
3.3 设置默认模式
在 ~/.claude/settings.json 中:
1 | { |
可选值:"default" / "acceptEdits" / "plan" / "auto" / "dontAsk" / "bypassPermissions"
注意:Claude Code v2.1.142+ 忽略项目级
.claude/settings.json中的defaultMode: "auto",防止仓库自己给自己授权 Auto Mode。必须在用户级~/.claude/settings.json中设置。
3.4 各界面切换
| 界面 | 切换方式 |
|---|---|
| CLI | Shift+Tab 循环 / --permission-mode 启动参数 |
| VS Code | 底部模式指示器点击 / claudeCode.initialPermissionMode 设置 |
| JetBrains | 同 CLI(Shift+Tab / 启动参数) |
| Desktop | 发送按钮旁的模式选择器 |
| Web/Mobile | 模式下拉菜单 |
四、各模式详解
4.1 Default 模式
最基本的模式,每个操作都需要确认。
- 读取操作(Read):自动批准
- 文件编辑、Shell 命令、MCP 工具:每次弹窗
适合初次使用或处理敏感项目时。
4.2 Accept Edits 模式
自动批准文件编辑,Shell 命令仍需确认。
状态栏显示 ⏵⏵ accept edits。
自动批准的操作:
- 文件创建、编辑
- 常用文件系统命令:
mkdir、touch、rm、rmdir、mv、cp、sed - 带安全环境变量前缀的命令(如
LANG=C、NO_COLOR=1) - PowerShell:
Set-Content、Add-Content、Clear-Content、Remove-Item及其别名
仍需确认:
- 工作目录外的路径
- 受保护路径的写入
- 其他所有 Bash 命令
适合日常开发——事后通过编辑器或 git diff 审查变更。
4.3 Plan Mode
Claude 只做研究和提出方案,不修改源代码。权限提示与 Default 模式相同。
增强功能(新版):
- 批准后切换模式:批准计划时可选择:
- 以 Auto Mode 开始执行
- 以 Accept Edits 开始执行
- 逐一审查每个编辑
- 继续规划并给出反馈
- 使用 Ultraplan(浏览器端审查)
- Ctrl+G:在默认编辑器中直接编辑计划
- 自动命名会话:批准计划后自动从计划内容生成会话名称
设置为项目默认:
1 | { |
4.4 Auto Mode(新增)
Auto Mode 让 Claude 无需权限提示即可执行。一个独立的分类器模型会在操作执行前审查,阻止超出请求范围的操作。
要求:
- Claude Code v2.1.83+
- 计划:所有计划均可
- 模型:Anthropic API 需 Claude Opus 4.6+ 或 Sonnet 4.6;Bedrock/Vertex/Foundry 需 Opus 4.7 或 4.8
- Team/Enterprise:管理员需在管理设置中启用
在 Bedrock/Vertex/Foundry 启用:
1 | { |
分类器默认阻止的操作:
- 下载并执行代码(如
curl | bash) - 向外部端点发送敏感数据
- 生产部署和迁移
- 云存储批量删除
- 授权 IAM 或仓库权限
- 修改共享基础设施
- 强制推送到 main
分类器默认允许的操作:
- 工作目录内的本地文件操作
- 安装 lockfile 中声明的依赖
- 读取
.env并发送凭证到对应的 API - 只读 HTTP 请求
- 推送到当前分支或 Claude 创建的分支
对话中的边界声明:
如果你在对话中说”不要推送”或”等我审查后再部署”,分类器会将这些视为阻止信号。边界从对话记录中读取,上下文压缩可能丢失。
回退机制:
- 连续 3 次被阻止或总计 20 次 → Auto Mode 暂停,恢复手动提示
- 非交互模式(
-p)中反复阻止会中止会话
4.5 Don’t Ask 模式
自动拒绝所有会弹窗的操作。只有匹配 allow 规则和只读 Bash 命令才能执行。ask 规则也被拒绝(不会弹窗)。
1 | claude --permission-mode dontAsk |
适合 CI/CD 流水线——预先精确定义 Claude 可以做什么。
4.6 Bypass Permissions 模式
禁用所有权限提示和安全检查,操作立即执行。v2.1.126+ 包括受保护路径的写入。
仍会弹窗:删除文件系统根目录或主目录(rm -rf /、rm -rf ~)
安全限制:
- Linux/macOS 下以 root 或 sudo 运行时拒绝启动
- 已识别的沙箱内自动跳过此检查
- 管理员可通过
permissions.disableBypassPermissionsMode: "disable"禁用
1 | claude --permission-mode bypassPermissions |
警告:Bypass 模式对提示注入和意外操作无任何防护。需要后台安全检查请用 Auto Mode。
五、受保护路径
在除 Bypass 外的所有模式中,对以下路径的写入永远不会自动批准:
受保护目录:.git、.config/git、.vscode、.idea、.husky、.cargo、.devcontainer、.yarn、.mvn、.claude(除 .claude/worktrees)
受保护文件:.gitconfig、.gitmodules、.bashrc、.bash_profile、.zshrc、.profile、.envrc、.npmrc、.yarnrc、.pre-commit-config.yaml、.mcp.json、.claude.json 等
| 模式 | 受保护路径写入 |
|---|---|
| Default / Accept Edits / Plan | 弹窗确认 |
| Auto | 路由到分类器 |
| Don’t Ask | 拒绝 |
| Bypass | 允许 |
六、settings.json 精细控制
6.1 三级规则
1 | { |
优先级:deny > ask > allow
6.2 规则语法
1 | <Tool>(<pattern>) |
- Tool:
Bash、Read、Edit、Write、WebFetch、WebSearch、Grep、Glob等 - pattern:glob 通配符,支持
*和**
1 | "Bash(*)" // 所有 Bash 命令 |
6.3 管理员控制选项
| 设置 | 作用 |
|---|---|
permissions.disableBypassPermissionsMode: "disable" |
禁用 Bypass 模式 |
permissions.disableAutoMode: "disable" |
禁用 Auto Mode |
permissions.additionalDirectories |
扩展工作目录范围 |
6.4 Auto Mode 配置
管理员可通过 autoMode 设置自定义分类器行为:
1 | { |
$defaults 表示继承内置规则。
七、最佳实践
7.1 日常开发推荐配置
1 | { |
7.2 场景选择
| 场景 | 推荐模式 |
|---|---|
| 初次使用 / 敏感项目 | Default |
| 日常编码 | Accept Edits + allow 白名单 |
| 代码审查 / 方案分析 | Plan Mode |
| 长时间重构任务 | Auto Mode |
| 只读检查 | Don’t Ask |
| CI/CD 自动化 | Don’t Ask(预定义 allow) |
| Docker / VM 隔离环境 | Bypass Permissions |
7.3 模式选择决策树
1 | 需要 Claude 自主工作? |
八、命令速查
1 | # 切换模式(会话中) |
九、总结
Claude Code 的权限系统从最初的 5 种模式进化到了 6 种,核心变化是 Auto Mode 的引入——它用 AI 分类器替代了人工弹窗,在安全和效率之间找到了新的平衡点。
选择建议:
- 对安全要求高 → Default / Plan
- 追求效率 → Auto Mode(有 AI 安全审查)
- 完全信任环境 → Bypass(仅限容器/VM)
- CI/CD → Don’t Ask(精确定义 allow 规则)
如果 settings.json 的 allow 规则能满足需求,优先用规则配置,而不是直接开 Bypass。
参考来源