简介
Claude Code 权限配置用于控制 Claude 可以读取哪些文件、修改哪些代码、允许执行哪些终端命令,防止误操作、执行高危指令。权限分为三层控制:交互模式、.claude/rules 规则文件、.claude/ignore 忽略列表。
.claude/ignore:控制文件读取权限,屏蔽文件,禁止被读取.claude/rules:细粒度权限,控制文件读写、终端命令执行权限- 交互模式:会话级权限,控制操作是否需要人工审批(前文《Claude Code 交互模式》)
权限层级优先级
会话交互模式 < .claude/rules(项目规则) < .claude/ignore(读取黑名单)
.claude/ignore优先级最高,被忽略的文件,任何规则下都无法读取。
一、.claude/ignore:文件读取黑名单
作用:阻止 Claude Code 读取匹配的文件/目录,语法与 .gitignore 完全一致。
仅控制读取,不能限制命令执行。
示例 .claude/ignore
# 环境密钥 .env .env.local *.pem *.key依赖包、构建产物 node_modules
dist
.build 本地IDE配置.idea
.vscode
二、.claude/rules:细粒度权限规则(进阶)
在 .claude/rules/ 目录新建规则文件(支持多个规则文件),用来定义:
- 允许 / 禁止读写哪些路径
- 允许 / 禁止哪些终端命令
- 限制文件操作类型(只读、禁止删除等)
示例:.claude/rules/project-rules.md
# 文件权限规则 1. 允许读取 src/ 目录全部文件,允许修改 src/**/*.ts、src/**/*.vue 2. 只读:README.md、CLAUDE.md,禁止修改 3. 禁止读写:config/db-migrate/ 数据库迁移脚本 4. 禁止删除任何文件终端命令权限✅ 允许:npm run lint, npm run test, git status, git log
❌ 禁止:rm -rf, drop database, docker destroy, chmod 777
规则支持通配符
**、*;多条规则从上往下匹配,命中即生效。
三、会话级权限:交互模式(快速控制)
属于临时权限,仅当前会话生效,不持久保存。
| 模式 | 文件修改 | 终端命令 |
|---|---|---|
| Manual(默认) | 需要审批 | 需要审批 |
| Plan | 禁止修改文件 | 仅允许安全只读命令 |
| Accept Edits | 自动批准文件修改 | 需要审批 |
| Auto | 自动判定风险 | 高危命令强制审批 |
切换方式:
/mode manual
/mode plan
快捷键:Shift + Tab
四、全局权限配置(用户级别)
全局规则放在 ~/.claude/rules/(Mac/Linux)或 %USERPROFILE%\.claude\rules\(Windows),对本机所有项目生效。
项目目录下的 .claude/rules 优先级高于全局规则,可以覆盖全局权限。
五、权限校验命令
# 诊断项目配置、权限、API连通性
claude doctor
claude doctor 会扫描 .claude/ignore、rules、CLAUDE.md,输出权限配置警告。
权限配置推荐工作流
- 基础防护:配置
.claude/ignore,屏蔽密钥、证书、隐私文件 - 项目约束:编写
.claude/rules,限制敏感目录、高危命令 - 会话安全:默认使用 Manual 模式;复杂任务先用 Plan 模式调研
- 多人协作:提交
.claude/rules到Git,统一团队权限边界
示例完整权限组合
# .claude/ignore .env *.pem node_modules dist.claude/rules/rules.md允许读写 src/**
只读 docs/**
禁止修改 prisma/migrations/**
禁止执行 rm、sudo、docker rm
常见问题
- 配置 rules 之后,Claude 仍然尝试修改禁止文件?
- 检查规则路径写法,通配符是否正确;
- 确认新建会话(修改rules需要新会话加载);
.claude/ignore优先级最高,如果文件被ignore,规则不再生效。
.claude/ignore可以阻止 Claude 修改文件吗?
不行!.claude/ignore仅阻止读取。如果文件已经被加载进上下文,依然可以修改。需要搭配 rules 限制写入权限。- rules 可以禁用所有终端命令吗?
可以,在 rules 中添加:禁止执行任何终端命令。
安全提示
- 生产环境项目,强烈建议配置
.claude/rules限制高危命令与敏感目录 - 不要单纯依赖交互模式做安全防护,交互模式仅会话临时生效
- 权限配置仅为辅助防护,高危操作务必人工复核
0 条笔记