Claude Code 通过 settings.json 文件和权限模式两套机制控制工具调用权限。

配置文件层级

优先级从高到低:

文件作用域说明
/Library/Application Support/ClaudeCode/policies.json企业级最高优先级,管理员部署(macOS)
/etc/claude-code/policies.json企业级Linux/WSL 企业策略
~/.claude/settings.json全局用户所有项目生效
.claude/settings.json项目共享提交到 git,团队共享
.claude/settings.local.json项目本地git 忽略,个人专属

权限规则格式

{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Read(~/.zshrc)",
      "Edit(**/*)",
      "Write(**/*)"
    ],
    "deny": [
      "Bash(curl:*)",
      "Bash(sudo:*)"
    ]
  }
}

通配符规则:

  • * 匹配单层路径
  • ** 匹配多层路径
  • Bash(npm run *) 匹配所有 npm run 子命令

六种权限模式

通过 initialPermissionMode 设置默认模式:

{
  "permissions": {
    "initialPermissionMode": "acceptEdits"
  }
}
模式说明适用场景
default只读,所有编辑/命令需手动批准陌生代码库、生产环境
plan只分析,不改动任何文件需求梳理、方案评估
acceptEdits自动批准文件编辑,Shell 命令仍需确认日常开发推荐
auto全自动 + 内置安全校验长时间迭代开发
dontAsk只允许预先配置的操作CI 自动化流程
bypassPermissions跳过所有权限检查仅沙箱/测试环境

查看与管理权限

会话中输入 /permissions 查看当前三类权限明细:

  • Allow:自动批准的操作
  • Ask:需手动确认的操作
  • Deny:直接禁止的操作

通过 /allowed-tools 可交互式管理权限列表,修改会同步写入 settings.json。

注意事项

  • 配置修改后无需重启即可生效(新会话读取最新配置)
  • 通配符权限(如 Bash(*))优先级高于精确匹配,精确匹配规则可删除
  • 企业策略文件优先级最高,会覆盖用户和项目级配置

相关页面