全部 Agent 工程

规范文件

Claude Code 权限规则:allow、ask、deny 怎样配合

用具体命令和文件路径区分允许、询问与拒绝,并核对规则优先级。来源核验,未实测。

AI Nav City撰写 / 更新

让 Agent 遵守项目规范,需要区分文字指令与工具权限。CLAUDE.md 能说明你期望的行为,权限规则决定工具调用是否被允许。本文从一个只放行构建、推送前询问的练习入手,解释匹配和冲突处理;不把示例当成完整隔离方案。

核验日期
· 未实测
适用于
  • Claude Code 依据 2026-11-03 读取的 Claude Code 官方文档;具体行为以安装版本与组织配置为准。[1]
涉及工具

文件位置

路径适用范围读取方式
.claude/settings.json当前项目可共享的权限配置Claude Code 从 settings 的 permissions 字段读取规则;组织策略可能进一步限制。[1]

什么时候用

  • 团队希望放行少数重复命令,同时保留关键操作的确认点。[1]

什么时候不用

  • 需要证明所有进程都无法读某文件或联网;单条工具规则不足以证明这种隔离。[1]

先分三类,再写匹配范围

官方文档把规则分为 allow、ask、deny,按 deny → ask → allow 求值,优先级不因模式更具体而改变。因此宽泛 deny 不能用更窄 allow 开例外;ask 命中时也会覆盖 allow。先列出任务必需操作,再决定哪些需要人查看。[1]

一个小范围配置

示例:构建允许、推送询问、文件读取拒绝
{
  "permissions": {
    "allow": ["Bash(npm run build)"],
    "ask": ["Bash(git push *)"],
    "deny": ["Read(./.env)"]
  }
}

[1]

这是本站原创练习配置:没有星号的 Bash 规则匹配确切命令;带星号的规则覆盖变化部分。运行 npm run build -- --verbose 不能直接假设命中原规则。Read(./.env) 描述当前目录的文件工具读取范围,不能由此推断所有 shell 读取都被阻止。[1]

用调用形状检查冲突

  • 保存前确认 JSON 可解析,并把新数组并入现有 permissions,保留原规则。
  • 在 /permissions 查看当前生效配置,检查用户、本地、项目和组织层是否另有规则。
  • 分别写下确切构建命令、带参数构建命令、推送命令的预期行为;出现差异时核对实际调用与规则,不扩大通配符碰运气。

[1]

核验范围与下一步

本页 JSON 示例已在本地解析,规则解释已逐项对照官方文档;没有启动 Claude Code 去验证提示、组织策略或 Bash 复合命令行为。实际采用时先在可丢弃的小项目查看 /permissions,再保留预期与实际决策的记录。复杂 shell、路径别名和网络访问应按官方对应章节单独核对。[1]

来源

以下均为官方页面,核验日期见各条;链接指向核验时的版本。

  1. Anthropic · Configure permissions - Claude Code Docs

发现错误?告诉我们 →