Claude Code 权限配置避坑指南:一文带你彻底攻略Claude Code权限配置
Claude Code 权限配置避坑指南:一文带你彻底攻略Claude Code权限配置
Prorise第一章. 权限系统深度解析
本章摘要:基础篇里,我们每次让 Claude 执行命令都要点 “确认”,烦不烦?但如果让它完全自主,又怕它 “删库跑路”。本章将彻底讲透 Claude Code 的权限系统,让你在 “安全” 和 “效率” 之间找到最佳平衡点。
本章学习路径
| 阶段 | 内容 | 解锁能力 |
|---|---|---|
| 第一阶段 | 权限模式全景图 | 理解五种权限模式的本质区别 |
| 第二阶段 | 权限规则配置 | 能够精细控制 Claude 对每个工具的访问权限 |
| 第三阶段 | 实战配置 | 为不同场景选择最合适的权限策略 |
1.1. 权限模式全景图
“为什么我每次让 Claude 改个文件,它都要问我一遍?”
这是新手最常见的抱怨。但换个角度想:如果 Claude 不问你就直接执行 rm -rf /,你怕不怕?
Claude Code 的权限系统就是为了解决这个矛盾——既要让 AI 足够自主以提高效率,又要保留人类的最终控制权以确保安全。
版本重大更新提示:如果你之前听说过 “Permission Modes”(权限模式),请注意:Claude Code 在最新版本中进行了一次 底层逻辑重构。它从粗放的 “模式切换” 进化为了更精细的 “规则(Rules)管理”。
现在的权限系统不再是简单的 “开关”,而是一个 动态的白名单系统。它覆盖了从 “事事请示” 到 “完全放飞” 的所有场景。
1.1.1. 新版核心逻辑:Allow, Ask, Deny
当你输入 /permissions 时,你不再会看到几个固定的模式选项,而是会看到一个类似图中的 规则配置面板。
这个新系统的核心在于三个状态(按 Tab 键切换):
- Ask (默认):Claude 想执行任何新操作时,都会弹窗问你。
- Allow (信任):你 已经授权 的操作(也就是白名单)。在这个列表里的命令,Claude 会自动执行,不再废话。
- Deny (禁止):你明确禁止的操作,Claude 连问都不会问,直接跳过。
这和旧版有什么区别?
旧版就像手机的 “情景模式”(静音、户外、会议),一键切换全局状态。新版就像手机的 “应用权限管理”,你可以允许微信访问相册,但禁止它访问麦克风。颗粒度更细,安全性更高。
1.1.2. Default 状态:从 “模式” 到 “渐进式信任”
在旧教程中,我们称之为 default 模式。在新版中,这就是你的 初始状态。
核心逻辑:
- 读取/搜索 → 自动执行(默认安全)。
- 修改/执行 → 都在
Ask列表中,需要你点击确认。
但新版有个巨大的改进:“记住我的选择”。
当你允许 Claude 运行一次 npm test 后,它会变聪明。如果你选择了 “Always allow”(总是允许),这条规则就会被移动到 Allow 标签页下(就像截图里的 Bash(pnpm create:*))。
这意味着:你不需要手动切换到 “高效模式”,随着你使用的深入,Allow 列表越来越长,Claude 就会变得越来越顺手,自动进化为你的专属形态。
1.1.3. 模拟 acceptEdits:打造 “只动口不动手” 的 AI
很多老用户怀念旧版的 acceptEdits 模式(允许改代码,不允许跑命令)。在新版中,你可以通过配置规则完美复刻这个体验。
如何实现:
- 当 Claude 请求修改文件(File Edit)时,选择 Always Allow。
- 或者在
/permissions的 Allow 列表中,添加文件修改相关的工具权限。 - 保持 Bash 命令在 Ask 或 Deny 状态。
这样,Claude 就可以疯狂写代码(因为有权限),但想运行命令时必须停下来问你。
适用场景:
- 大规模重构(让它自动改几十个文件)。
- 你想专注于 Code Review,而不是由着它乱跑脚本。
1.1.4. bypassPermissions:上帝模式(危险但高效)
危险警告:这个模式会让 Claude 完全自主执行所有操作,包括删除文件、执行任意命令。除非你 100% 清楚自己在做什么,否则不要使用。
无论版本如何更新,这个 “核按钮” 依然保留。如果你想让 Claude 全自动干活,完全不因权限问题中断,你可以绕过整个规则系统。
启用方式:
这个模式 不能 在 /permissions 菜单里开启(那里是管规则的),必须在 启动时 显式指定参数:
1 | claude --dangerously-skip-permissions |
注意那个 dangerously(危险地)——官方特意用这个词来警告你。开启后,Allow/Ask/Deny 的规则将被全部无视,Claude 获得最高权限。
适用场景:
- 完全隔离的沙盒环境(如 Docker 容器)。
- 无人值守的自动化脚本。
1.1.5. 本节小结
从 “模式” 到 “规则”,Claude Code 的权限管理变得更加理性。
| 旧版概念 | 新版对应操作 | 适用场景 |
|---|---|---|
default | 保持默认,遇到弹窗手动确认 | 日常开发,安全第一 |
acceptEdits | 将 FileEdit 相关操作加入 Allow 列表 | 大规模重构代码 |
plan | 将 Bash/Edit 相关操作加入 Deny 列表 | 只读分析,严禁动手 |
bypass | 启动时加 --dangerously-skip-permissions | 沙盒/全自动运行 |
一句话总结:以前是你去适应 Claude 的模式,现在是通过 /permissions 让 Claude 适应你的规矩。
1.2. 权限规则配置
上一节讲的是 “模式”——一种粗粒度的控制方式。但实际工作中,你可能需要更精细的控制:
- “我想让 Claude 自动运行
npm test,但其他命令还是要问我” - “我想禁止 Claude 读取
.env文件,里面有密钥” - “我想让 Claude 可以修改
src/目录,但不能动config/目录”
这就需要用到 权限规则配置。
1.2.1. allow / deny / ask 三层控制机制
Claude Code 的权限规则分为三层:
- allow:允许自动执行,不需要确认
- deny:完全禁止,Claude 无法执行
- ask:每次执行前询问用户确认
这三层的优先级是:deny > ask > allow。也就是说,如果一个操作同时匹配了 allow 和 deny 规则,deny 会生效。
配置位置:
权限规则配置在 settings.json 文件中。根据作用范围不同,可以放在:
~/.claude/settings.json—— 对所有项目生效.claude/settings.local.json—— 只对当前项目生效
基本语法:
1 | { |
1.2.2. 工具级权限精细化
“规则” 的格式是 工具名(参数模式)。Claude Code 有以下几种核心工具:
| 工具名 | 作用 | 示例规则 |
|---|---|---|
Read | 读取文件 | Read(./.env) |
Edit | 修改文件 | Edit(src/**) |
Write | 创建/覆盖文件 | Write(*.md) |
Bash | 执行 Shell 命令 | Bash(npm test) |
WebFetch | 访问网络 | WebFetch(https://api.example.com/*) |
实战示例 1:允许自动运行测试命令
1 | { |
配置后,Claude 运行这三个命令时不再需要你确认。
实战示例 2:禁止读取敏感文件
1 | { |
配置后,Claude 完全无法读取这些文件,即使你明确要求它也不行。
实战示例 3:允许修改源码,禁止修改配置
1 | { |
1.2.3. Bash 命令的特殊处理
Bash 工具的权限规则有一些特殊之处,需要单独说明。
前缀匹配机制:
Bash 规则使用 前缀匹配,而不是精确匹配。这意味着:
Bash(npm test)会匹配npm test、npm test --coverage、npm test src/Bash(git)会匹配所有以git开头的命令
通配符语法:
Bash(npm run:*)—— 匹配所有npm run开头的命令Bash(git log:*)—— 匹配所有git log开头的命令
安全警告:
Bash 规则的前缀匹配机制存在绕过风险。例如,Bash(ls) 本意是允许列出文件,但也会匹配 ls; rm -rf /(命令注入)。对于安全敏感场景,建议使用更精确的规则或依赖 deny 列表。
推荐的安全配置:
1 | { |
1.2.4. 敏感文件保护策略
保护敏感文件是权限配置中最重要的部分。以下是一份推荐的 “敏感文件黑名单”:
1 | { |
为什么要保护这些文件?
| 文件/目录 | 包含内容 | 泄露风险 |
|---|---|---|
.env | API 密钥、数据库密码 | 账户被盗、数据泄露 |
~/.ssh/ | SSH 私钥 | 服务器被入侵 |
~/.aws/ | AWS 凭证 | 云资源被滥用 |
package-lock.json | 依赖锁定 | 误修改导致构建失败 |
1.2.5. 本节小结
权限规则配置的核心是 精细化控制——让 Claude 在你信任的范围内自由行动,在敏感区域寸步难行。
| 配置项 | 作用 | 优先级 |
|---|---|---|
deny | 完全禁止 | 最高 |
ask | 每次询问 | 中等 |
allow | 自动执行 | 最低 |
速查配置模板:
1 | { |








