Seven Mental · 心智七篇
← Knowledge Atlas · Source

Claude Code 权限系统(官方文档)

Claude Code 权限系统官方文档:三级工具分级、deny-first 规则语义、六种权限模式、五级作用域层次、权限与沙箱双层纵深防御
SOURCE · CLAUDE CODE PERMISSIONS · Anthropic official · deny-first · six modes · five-level scope

Claude Code Permissions System

Anthropic official docs — the core security mechanism that precisely controls what the agent can and cannot do

Three tool tiers × three rule types × six modes × five-level scope form Claude Code’s full permission model. Core semantics: deny-first — evaluation runs deny → ask → allow, the first match wins, deny always takes priority. A deny at any layer cannot be overridden by an allow elsewhere.

Three tool tiers
Tool type
Examples
Approval
Read-only
File read, Grep
Not required
File edits
Edit / Write
Session-level
Bash commands
Shell execution
Permanent (saved to settings)
Six permission modes
default
Prompts on first use
acceptEdits
Auto-accepts file edits (except protected dirs)
auto
Auto-approves with a classifier model running safety checks in the background
bypassPermissions
Skips all prompts (container/VM isolation only)
Fine-grained rules
Bash(npm run *) wildcard, Read(./.env) exact path, WebFetch(domain:x.com) by domain
Permissions + sandbox
Read rules block read tools but not cat inside Bash — sandbox enforces isolation at the OS level
→ Settings Scope Hierarchy · Guardrails · Claude CodeAnthropic Docs (2026-04-08)

Claude Code 权限系统(官方文档)

基本信息

摘要

本文档是 Anthropic 官方的 Claude Code 权限系统完整参考。Claude Code 是一款 AI 编码 agent,权限系统是其核心安全机制——精确控制 agent 被允许做什么、不能做什么。

核心主题

1. 分层权限系统(Tiered Permission System)

Claude Code 将工具分为三类,审批要求不同:

工具类型示例需要审批”不再询问”行为
只读工具文件读取、GrepN/A
Bash 命令Shell 执行永久记录(按项目目录+命令)
文件修改编辑/写入文件会话结束前有效

这个三级结构体现了风险分层:只读操作无需确认,文件修改需要一次会话级授权,Bash 命令风险最高因而需要永久级审批(保存到 settings)。

2. Allow/Ask/Deny 规则层次

Claude Code 使用三类规则管理权限:

  • Allow:无需手动确认,直接允许使用指定工具
  • Ask:每次使用前提示确认
  • Deny:阻止使用

评估顺序:deny → ask → allow。第一个匹配的规则生效,因此 deny 规则总是优先。这是”拒绝优先”(deny-first)语义——只有没有 deny 规则匹配时,才考虑 ask,再才考虑 allow。

3. 六种权限模式

通过 defaultMode 配置:

模式描述
default标准行为:每个工具首次使用时提示
acceptEdits自动接受文件编辑权限(受保护目录除外)
plan计划模式:只能分析,不能修改文件或执行命令
auto自动审批,后台安全检查验证操作是否符合请求意图
dontAsk自动拒绝,除非通过 /permissions 或 allow 规则预先授权
bypassPermissions跳过权限提示(受保护目录仍提示)

bypassPermissions 最危险,仅应用于容器/VM 等隔离环境。管理员可在托管设置中禁用此模式。

4. 规则指定符(Specifiers)

规则格式:ToolTool(specifier)

工具级(匹配所有使用):

  • BashReadWebFetch

精细匹配

  • Bash(npm run build) — 精确匹配命令
  • Read(./.env) — 精确匹配文件路径
  • WebFetch(domain:example.com) — 按域名匹配

通配符Bash(npm run *) 匹配所有以 npm run 开头的命令。空格前的 * 强制单词边界:Bash(ls *) 匹配 ls -la 但不匹配 lsof

MCP 工具mcp__puppeteermcp__puppeteer__puppeteer_navigate

子 AgentAgent(Explore)Agent(my-custom-agent)

5. 作用域层次(Settings Precedence)

优先级从高到低:

  1. 托管设置(Managed):不可被任何其他层覆盖
  2. 命令行参数:临时会话覆盖
  3. 本地项目设置.claude/settings.local.json
  4. 共享项目设置.claude/settings.json
  5. 用户设置~/.claude/settings.json

关键语义:任意层级的 deny 都不可被其他层的 allow 覆盖。例如,托管 deny 无法通过 --allowedTools 绕过。

6. 权限与沙箱:两层互补安全

  • 权限:控制 Claude Code 可以使用哪些工具、访问哪些文件/域名(适用于所有工具)
  • 沙箱:OS 级强制隔离,限制 Bash 工具的文件系统和网络访问(仅适用于 Bash 命令及其子进程)

纵深防御逻辑:权限规则阻止 Claude 发起受限访问请求,沙箱在 prompt injection 绕过模型决策时作为最后防线。

7. Hooks 扩展权限

PreToolUse hooks 在权限提示前运行,可动态:

  • 拒绝工具调用(exit 2)
  • 强制提示
  • 跳过提示(但不绕过 deny 规则)

8. Auto 模式分类器

Auto 模式使用分类器模型判断每个操作是否安全。分类器读取 autoMode 配置:

  • environment:描述可信基础设施
  • allow:例外规则
  • soft_deny:阻止规则

设置 allowsoft_deny 会替换全部默认值,需先运行 claude auto-mode defaults 获取内置规则。

9. 托管设置(Managed Settings)

组织管理员可通过 MDM/OS 级策略部署不可覆盖的设置。托管专属设置包括:

  • allowManagedPermissionRulesOnly:阻止用户和项目定义权限规则
  • allowManagedHooksOnly:阻止加载用户/项目/插件钩子
  • allowManagedMcpServersOnly:仅允许托管 MCP 服务器

关键洞察

  1. 规则层次是 deny-first,不是 allow-first:匹配优先级 deny > ask > allow 的”第一匹配”语义意味着阻止比允许更容易实现和更难绕过
  2. 权限与沙箱是互补而非替代:Read 规则阻止读工具,但不阻止 cat file 的 Bash 命令——需要沙箱补足
  3. Auto 模式分类器是可配置的:内置规则不够时可通过 environment/allow/soft_deny 调整
  4. Bash 权限规则不可靠用于参数约束:通配符模式对变量、空格、重定向等变体无效——应使用 WebFetch+域名规则或 PreToolUse hooks

与其他来源的关联

  • Agent Sandboxing 的 OS 级沙箱研究形成互补——本文档提供了沙箱之上的应用层权限控制
  • Guardrails 的分层防御模式一致——Claude Code 的权限系统是专门化的 guardrails 实现
  • bypassPermissions 模式印证了 Agent OS 讨论中的容器/VM 隔离部署模式
  • 托管设置机制对应 Harness Engineering 中”组织级约束编码进 harness”的思路

References

  • sources/anthropic_official/claude-code-permissions.md