Claude Code 权限模式

发布时间: 更新时间: 总字数:1143 阅读时间:3m 作者:IP:上海 网址

Claude Code 设计了一套非常细粒度的权限系统(Permission System),用来在自动化开发效率系统安全之间取得平衡。目前,它支持6 种权限模式。本文是 Claude Code 支持的权限模式总结。

Claude Code 权限模式总结表

模式名称 配置文件标识符 核心行为与逻辑 适用场景
默认模式
(Normal/Default)
default 最高安全标准:拦截并弹窗询问所有潜在的危险操作(包括文件修改、Bash 终端命令、网络请求、MCP 调用)。 日常开发、不熟悉的代码库、包含高风险操作的任务。
自动接受修改
(Auto-Accept Edits)
acceptEdits 效率优先:免弹窗自动通过所有的文件修改以及常规安全的系统命令(如 mkdir, touch, mv, rm)。对未知或复杂 Bash 命令仍会弹窗询问。 大型项目重构、执行已知实现计划、繁重但低风险的代码编写任务。
规划模式
(Plan Mode)
plan 只读状态:剥夺所有的写入和执行权限,强行限制模型只能执行文件读取(Read)和搜索(Grep/Glob)。 项目初期代码库探索、架构分析、需求梳理规划、代码审查(Code Review)。
智能自动模式
(Auto Mode)
auto AI 安全分类器介入:没有任何弹窗。每次执行工具前,由背后的专属 AI 模型(分类器)瞬间判断该操作是否安全,常规操作放行,破坏性操作直接阻断并要求另寻他路。(注:通常需要 Team/API 账户支持) 高级自动化开发、希望减少弹窗但又不敢完全放开所有权限的场景。
不询问模式
(Don’t Ask)
dontAsk 隐式拒绝永远不会弹窗。除非你在细粒度配置中明确把某个工具加入了白名单(Allow),否则 Claude 的任何未经授权请求都会被静默拒绝。 CI/CD 自动化流水线、极其严格的受限容器环境(无人类监管的场景)。
绕过权限模式
(Bypass Permissions)
bypassPermissions 终极放权:跳过所有的权限检查和确认(等同于启动时的 --dangerously-skip-permissions 标志)。模型可以随意增删文件和执行任意脚本。 纯隔离的 Docker 沙盒环境、一次性的实验性仓库(YOLO 模式)。

如何通过配置文件修改“默认权限模式”

Claude Code 的配置分为全局配置项目级配置,后者优先级高于前者。你可以通过修改 settings.json 文件来永久更改默认的权限模式,避免每次打开都手动切换。

1. 找到对应的配置文件

  • 全局生效(所有项目): ~/.claude/settings.json (Mac/Linux) 或 %USERPROFILE%\.claude\settings.json (Windows)
  • 项目级生效(仅当前项目): <你的项目根目录>/.claude/settings.json

2. 修改配置文件的内容

打开该 JSON 文件(如果没有则手动创建),在里面添加或修改 permissions 下的 defaultMode 字段:

json
{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

提示:可以将 "acceptEdits" 替换为上表中“配置文件标识符”列的任何一个值(如 "plan", "default", "auto" 等)。

其他临时或快速切换模式的方法

如果你不想改死配置文件,也可以使用以下快捷方式:

  1. 命令行标志(单次启动): 在终端启动 Claude Code 时,直接通过 --permission-mode 参数指定。

    bash
    # 直接以规划模式进入
    claude --permission-mode plan
    
    # 极客专属:直接以绕过权限模式进入(不推荐在宿主机使用)
    claude --dangerously-skip-permissions
  2. 会话内热切换(快捷键): 当你在 Claude Code 的交互式终端里时,直接按下键盘的 Shift + Tab 键,系统会在 default –> acceptEdits –> plan 这三种最常用的模式之间来回循环切换。状态栏底部会实时显示当前的模式。