是什么
权限模式控制 Claude 在执行文件编辑和 shell 命令时是否需要用户确认。不同模式在便利性和监督力度之间做出不同权衡,适用于不同场景。
核心机制
六种权限模式:
| 模式 | 无需确认的操作 | 适用场景 |
|---|---|---|
default | 仅读取 | 敏感操作、初次使用 |
acceptEdits | 读取 + 文件编辑 + 常见文件系统命令 | 快速迭代代码 |
plan | 仅读取(生成计划但不修改) | 复杂变更前的探索 |
auto | 所有操作(后台分类器评估) | 长任务、减少确认疲劳 |
dontAsk | 仅预批准的工具 | CI 流水线、受限环境 |
bypassPermissions | 所有操作(无任何检查) | 隔离容器/VM |
切换方式:
- CLI:
Shift+Tab循环切换(default → acceptEdits → plan) - 启动时:
claude --permission-mode plan - 持久默认:在
settings.json中设置permissions.defaultMode - VS Code:点击提示框底部的模式指示器
Auto 模式(研究预览):后台分类器在每个操作执行前评估风险。默认阻止:curl | bash、生产部署、批量删除云存储、强制推送 main 等。默认允许:工作目录内的文件操作、安装 lock file 中声明的依赖、只读 HTTP 请求。需要 Max/Team/Enterprise 计划和特定模型(Sonnet 4.6、Opus 4.6/4.7)。
受保护路径:除 bypassPermissions 外,所有模式都不会自动批准对以下路径的写入:.git、.vscode、.idea、.husky、shell 配置文件(.bashrc、.zshrc 等)、.mcp.json、.claude.json。
acceptEdits 模式细节:自动批准 mkdir、touch、rm、rmdir、mv、cp、sed 等常见文件系统命令,但仅限工作目录内的路径。
关键细节
bypassPermissions在 Linux/macOS 上拒绝以 root/sudo 运行- Auto 模式分类器阻止 3 次连续或 20 次总计后,自动回退到提示模式
- Plan 模式下按
Ctrl+G可在文本编辑器中直接编辑计划 dontAsk模式不出现在Shift+Tab循环中,只能通过--permission-mode dontAsk启动
关联
- how-claude-code-works — 权限机制在 agentic loop 中的位置
- best-practices — 何时使用哪种权限模式
- claude-directory — settings.json 权限配置
实践要点
- 新项目或敏感操作用
default模式,熟悉后切换到acceptEdits - 复杂重构前先用
plan模式探索,确认方案后再执行 - CI/CD 中用
dontAsk+ 预批准规则,避免流水线卡在确认提示 bypassPermissions仅用于 Docker 容器或 VM 等隔离环境,不要在本机使用- 在
settings.json中预批准常用命令(如npm test、git status)减少重复确认 - Auto 模式的分类器看不到工具结果,只看用户消息和工具调用,防止提示注入