权限配置

配置 Claude Code 的权限模式,控制哪些操作需要人工确认

权限配置

Claude Code 使用权限系统来控制哪些操作需要用户确认。合理配置权限,既能保证安全,又能提高开发效率。

四种权限模式

模式 说明 适用场景
default 首次使用工具时询问权限 日常开发,平衡安全与效率
acceptEdits 自动批准文件编辑,其他操作仍需确认 需要频繁修改文件的任务
plan 只分析不执行(Plan Mode) 探索和审查代码,不希望 Claude 做任何修改
bypassPermissions 跳过所有权限提示 CI/CD 自动化、受信任的安全环境

切换权限模式

  • Shift+Tab 循环切换权限模式
  • Shift+Tab 两次进入 Plan Mode(按 Escape 退出)
  • 在对话框中直接选择模式

配置默认权限模式

.claude/settings.json 中配置:

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

Allow 规则:预批准命令

预先批准特定命令,避免每次询问:

{
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test:*)",
      "Bash(git status)",
      "Bash(git add:*)",
      "Bash(git diff:*)"
    ]
  }
}

Allow 规则语法

  • Bash(命令) — 精确匹配命令
  • Bash(命令前缀:*) — 匹配以该前缀开头的命令
  • Read(文件路径) — 允许读取特定文件
  • Write(文件路径) — 允许写入特定文件

Deny 规则:保护敏感文件

阻止 Claude 访问或修改敏感文件:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)",
      "Write(./.git/**)",
      "Bash(rm -rf:*)"
    ]
  }
}

Deny 规则语法

  • 路径模式支持 *(单层)和 **(多层)通配符
  • Deny 规则优先级高于 Allow 规则

同时使用 Allow 和 Deny

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff)"
    ],
    "deny": [
      "Bash(git push:*)",
      "Bash(rm -rf:*)",
      "Read(./.env*)"
    ]
  }
}

配置文件层级

Claude Code 按以下优先级合并权限配置:

优先级 位置 适用范围
最高 .claude/settings.local.json(不提交到 Git) 个人本地覆盖
.claude/settings.json(提交到 Git) 团队共享配置
最低 ~/.claude/settings.json 全局用户配置

团队协作建议

  • 将团队通用的 allow/deny 规则放在 .claude/settings.json 并提交到 Git
  • 个人特殊需求放在 .claude/settings.local.json,加入 .gitignore

最佳实践

1. 保护敏感凭据

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./credentials/**)",
      "Read(./.ssh/**)"
    ]
  }
}

2. 前端项目配置

{
  "permissions": {
    "defaultMode": "acceptEdits",
    "allow": [
      "Bash(npm run dev)",
      "Bash(npm run build)",
      "Bash(npm run test:*)",
      "Bash(npm run lint:*)"
    ]
  }
}

3. CI/CD 自动化

{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}

⚠️ 注意bypassPermissions 模式会跳过所有安全检查,只在完全受信任的自动化环境中使用。

🚀
开始使用 QCode — AI 编程助手
Claude Code 官方中继,稳定快速,开箱即用
查看套餐定价 → 注册账号