J'Blog

17 课 · 进阶

语义检索

基于 Chroma 向量库,与 Workspace 知识库分离。用自然语言描述你想查的内容。 非管理员每人每天可检索 5 次(消耗站点 AI 配额)。

配置权限

原文:Configure permissions

一句话

通过精细的权限规则、模式和策略控制 Claude Code 的访问范围和操作能力。

什么时候翻这页

  • 需要限制 Claude Code 对特定文件或命令的访问权限
  • 组织需要集中管理所有开发者的权限设置
  • 想要了解不同权限模式的适用场景
  • 需要编写自定义权限规则来控制 Claude Code 的行为

核心概念

  • 分层权限系统:Claude Code 使用三层权限系统(只读、Bash命令、文件修改)平衡能力与安全
  • 权限规则优先级:规则按顺序评估(拒绝→询问→允许),第一个匹配的规则生效
  • 权限模式:提供多种预设模式控制工具审批方式,如默认模式、自动接受编辑模式、计划模式等
  • 权限规则语法:支持工具名匹配和限定符匹配两种形式,可使用通配符进行精细控制
  • 管理设置:组织可部署无法被用户或项目设置覆盖的集中管理策略

怎么做

权限管理基础

  1. 使用 /permissions 命令查看和管理 Claude Code 的工具权限
  2. 理解三种规则类型:
    • allow:允许 Claude Code 使用指定工具无需手动审批
    • ask:Claude Code 尝试使用指定工具时提示确认
    • deny:阻止 Claude Code 使用指定工具

权限规则编写

  1. 匹配所有工具使用:直接使用工具名,如 BashRead
  2. 精细控制:使用限定符,如 Bash(npm run build)Read(./.env)
  3. 使用通配符:* 可出现在命令任何位置,如 Bash(npm run *)
  4. 注意空格影响:Bash(ls *) 匹配 ls -la 但不匹配 lsof,而 Bash(ls*) 匹配两者

权限模式选择

根据使用场景选择合适的权限模式:

  • default:标准行为,首次使用每个工具时提示
  • acceptEdits:自动接受文件编辑和工作目录的常见文件系统命令
  • plan:计划模式,Claude 只读取文件和运行只读命令
  • auto:自动批准工具调用,带后台安全检查
  • dontAsk:除非通过 /permissionspermissions.allow 规则预批准,否则自动拒绝工具
  • bypassPermissions:跳过所有权限提示(谨慎使用)

命令 / 配置速查

命令/配置说明
/permissions查看和管理 Claude Code 的工具权限
defaultMode在设置文件中设置默认权限模式
Bash(command)匹配特定 Bash 命令
Bash(*)匹配所有 Bash 命令
Read(path)匹配特定文件读取
Edit(path)匹配特定文件编辑
WebFetch(domain:example.com)匹配特定域名的网络请求
Agent(AgentName)匹配特定子代理
additionalDirectories在设置文件中添加额外工作目录
allowManagedPermissionRulesOnly管理设置,仅允许使用管理设置的权限规则

初学者易错点

  1. 路径格式混淆/path 是相对于项目根目录的路径,而 //path 是文件系统绝对路径
  2. 通配符使用不当:空格在通配符前很重要,Bash(ls *)Bash(ls*) 匹配不同的命令集
  3. 复合命令处理:Claude Code 会将复合命令拆分为多个子命令分别处理,而非作为整体
  4. 权限模式选择错误bypassPermissions 模式会跳过所有权限提示,只能在隔离环境中使用
  5. 忽略规则优先级:拒绝规则总是优先于允许规则,无论它们在配置文件中的位置

相关词条

  • permission-modes 权限模式详解
  • settings 设置文件完整参考
  • sandboxing 沙箱隔离机制
  • hooks-guide 钩子扩展权限评估
  • sub-agents 子代理使用
  • auto-mode-config 自动模式配置

官方原文:https://code.claude.com/docs/en/permissions