配置权限
一句话
通过精细的权限规则、模式和策略控制 Claude Code 的访问范围和操作能力。
什么时候翻这页
- 需要限制 Claude Code 对特定文件或命令的访问权限
- 组织需要集中管理所有开发者的权限设置
- 想要了解不同权限模式的适用场景
- 需要编写自定义权限规则来控制 Claude Code 的行为
核心概念
- 分层权限系统:Claude Code 使用三层权限系统(只读、Bash命令、文件修改)平衡能力与安全
- 权限规则优先级:规则按顺序评估(拒绝→询问→允许),第一个匹配的规则生效
- 权限模式:提供多种预设模式控制工具审批方式,如默认模式、自动接受编辑模式、计划模式等
- 权限规则语法:支持工具名匹配和限定符匹配两种形式,可使用通配符进行精细控制
- 管理设置:组织可部署无法被用户或项目设置覆盖的集中管理策略
怎么做
权限管理基础
- 使用
/permissions命令查看和管理 Claude Code 的工具权限 - 理解三种规则类型:
allow:允许 Claude Code 使用指定工具无需手动审批ask:Claude Code 尝试使用指定工具时提示确认deny:阻止 Claude Code 使用指定工具
权限规则编写
- 匹配所有工具使用:直接使用工具名,如
Bash、Read - 精细控制:使用限定符,如
Bash(npm run build)、Read(./.env) - 使用通配符:
*可出现在命令任何位置,如Bash(npm run *) - 注意空格影响:
Bash(ls *)匹配ls -la但不匹配lsof,而Bash(ls*)匹配两者
权限模式选择
根据使用场景选择合适的权限模式:
default:标准行为,首次使用每个工具时提示acceptEdits:自动接受文件编辑和工作目录的常见文件系统命令plan:计划模式,Claude 只读取文件和运行只读命令auto:自动批准工具调用,带后台安全检查dontAsk:除非通过/permissions或permissions.allow规则预批准,否则自动拒绝工具bypassPermissions:跳过所有权限提示(谨慎使用)
命令 / 配置速查
| 命令/配置 | 说明 |
|---|---|
/permissions | 查看和管理 Claude Code 的工具权限 |
defaultMode | 在设置文件中设置默认权限模式 |
Bash(command) | 匹配特定 Bash 命令 |
Bash(*) | 匹配所有 Bash 命令 |
Read(path) | 匹配特定文件读取 |
Edit(path) | 匹配特定文件编辑 |
WebFetch(domain:example.com) | 匹配特定域名的网络请求 |
Agent(AgentName) | 匹配特定子代理 |
additionalDirectories | 在设置文件中添加额外工作目录 |
allowManagedPermissionRulesOnly | 管理设置,仅允许使用管理设置的权限规则 |
初学者易错点
- 路径格式混淆:
/path是相对于项目根目录的路径,而//path是文件系统绝对路径 - 通配符使用不当:空格在通配符前很重要,
Bash(ls *)和Bash(ls*)匹配不同的命令集 - 复合命令处理:Claude Code 会将复合命令拆分为多个子命令分别处理,而非作为整体
- 权限模式选择错误:
bypassPermissions模式会跳过所有权限提示,只能在隔离环境中使用 - 忽略规则优先级:拒绝规则总是优先于允许规则,无论它们在配置文件中的位置
相关词条
permission-modes权限模式详解settings设置文件完整参考sandboxing沙箱隔离机制hooks-guide钩子扩展权限评估sub-agents子代理使用auto-mode-config自动模式配置