Permissions¶
重要性:⭐⭐⭐ 目标读者:所有用户(必读) 关联:topics/permission-system.md、topics/deep-dive-bash-permissions.md
1. 概览¶
Claude Code 工具调用必须先通过权限检查——决定 allow / deny / ask。
5 mode:
- default —— 正常
- acceptEdits —— 自动接受 Edit
- bypassPermissions —— 全部允许(危险)
- plan —— 只读
- auto —— AI 决策
2. 5 mode 详解¶
2.1 default¶
正常 —— 按规则。
2.2 acceptEdits¶
自动接受 Edit/Write —— 其他 ask。
2.3 bypassPermissions¶
⚠️ 危险 —— 全部允许。
2.4 plan¶
只读 —— Edit/Write/Bash 都 ask。
2.5 auto¶
AI 决策 —— LLM classifier。
3. CLI flag¶
# 启动时指定
claude --permission-mode default
claude --permission-mode acceptEdits
claude --permission-mode bypassPermissions
claude --permission-mode plan
claude --permission-mode auto
# 临时切换(推测)
> /mode default
> /mode plan
2 种切 mode。
4. 3 种规则¶
4.1 allow 规则¶
白名单 —— 总是允许。
4.2 deny 规则¶
黑名单 —— 总是拒绝。
4.3 ask 规则¶
总是问 —— 即便白名单。
5. 5 种工具特定权限¶
5.1 Bash 权限¶
{
"allow": [
"Bash(git:*)", // 前缀匹配
"Bash(npm run:*)", // 命令 + 第一个参数
"Bash(grep:*)" // 命令
],
"deny": [
"Bash(rm -rf:*)",
"Bash(sudo:*)"
]
}
Bash 规则——命令 + 子命令。
5.2 Edit/Write 权限¶
文件路径 匹配。
5.3 Read 权限¶
读权限。
5.4 WebFetch 权限¶
域名匹配。
5.5 Agent 权限¶
Agent 限制。
6. 规则匹配¶
6.1 优先级¶
3 优先级。
6.2 通配符¶
3 种。
6.3 路径¶
3 种。
6.4 规则顺序¶
后面覆盖。
7. 5 个实战¶
7.1 个人默认¶
// ~/.claude/settings.json
{
"permissions": {
"allow": ["Bash(git:*)", "Bash(npm:*)", "Read", "Edit", "Write"],
"deny": ["Bash(rm -rf:*)", "Bash(sudo:*)", "Bash(curl:*)"]
}
}
个人。
7.2 项目级¶
// .claude/settings.json
{
"permissions": {
"defaultMode": "default",
"allow": ["Bash(docker:*)", "Read(./src/**)"],
"deny": ["Bash(rm -rf:*)"]
}
}
项目。
7.3 Enterprise Policy¶
// /etc/claude-code/policy.json
{
"permissions": {
"defaultMode": "default",
"deny": ["Bash(*)", "WebFetch", "Read(/etc/**)"]
}
}
企业。
7.4 临时 grant¶
临时。
7.5 撤销¶
全拒。
8. UI 流程¶
8.1 默认 ask¶
> Edit src/auth.ts
Allow Edit on src/auth.ts?
1. Yes (allow this time)
2. Yes, and don't ask again for Edit on this file
3. Yes, and don't ask again for Edit on this session
4. No
Choice: 1
4 选项。
8.2 deny¶
deny 反馈。
8.3 bypass¶
> /permission-mode bypassPermissions
⚠️ Warning: bypassPermissions enables all tools without confirmation
Use only in trusted environments
警告。
9. 6 层决策流程¶
1. mode 检查 (bypass / plan)
↓
2. exact match 检查
↓
3. wildcard 检查
↓
4. sandbox auto-allow
↓
5. early deny
↓
6. semantic deny / classifier
↓
return allow / deny / ask
6 步。
10. Bash 特定规则¶
10.1 6 层决策¶
详见 deep-dive-bash-permissions.md。
10.2 25+ validator¶
详见 deep-dive-bash-security.md。
10.3 stripSafeWrappers¶
剥离。
11. 5 个最佳实践¶
- deny 默认 —— 明确允许
- 白名单具体 ——
Bash(git:*)而非Bash(*) - 路径白名单 ——
Read(./src/**) - deny 危险 ——
rm -rf/sudo/curl - 定期 review —— 检查 .claude/settings.json
5 条。
12. 5 个常见错误¶
12.1 太宽 allow¶
太宽。
12.2 路径用绝对¶
绝对路径。
12.3 忽略 order¶
顺序重要。
12.4 没 deny 危险¶
缺 deny。
12.5 mode 误用¶
mode 误用。
13. 5 个企业级建议¶
13.1 Policy 强制¶
强制。
13.2 settings 模板¶
模板。
13.3 审计¶
审计。
13.4 培训¶
培训。
13.5 监控¶
监控。
14. 5 个调试命令¶
14.1 debug¶
debug。
14.2 explain¶
explain。
14.3 list¶
list。
14.4 test¶
test。
14.5 reset¶
reset。
15. 5 个迁移步骤¶
15.1 评估¶
评估。
15.2 deny 优先¶
deny。
15.3 allow 具体¶
allow。
15.4 mode¶
mode。
15.5 测试¶
测试。
16. 总结¶
Permissions = 多层规则 + 工具特定。
核心: - 5 mode - 3 规则(allow/deny/ask) - 6 层决策 - 5 工具特定 - deny > ask > allow 优先级
下一步: - 看 permission-system.md - 配置项目级 - 团队培训