Claude Code 的配置系统基于作用域(Scope)设计:从组织级的强制策略,到个人的本地偏好,每一层都有明确的覆盖规则。
四级作用域
| 作用域 | 位置 | 影响范围 | 团队共享 |
|---|---|---|---|
| Managed | MDM 策略、系统目录或服务器下发 | 机器上所有用户 | 是(IT 部署) |
| User | ~/.claude/ | 你,跨所有项目 | 否 |
| Project | .claude/(提交到 git) | 仓库所有协作者 | 是 |
| Local | .claude/*.local.*(已 gitignore) | 仅你,仅此项目 | 否 |
优先级规则
当同一设置在多个作用域中配置时,更具体的作用域优先:
- Managed(最高,无法被覆盖)
- 命令行参数(临时会话覆盖)
- Local(覆盖 Project 和 User)
- Project(覆盖 User)
- User(最低,仅在无其他配置时生效)
各作用域的适用场景
Managed:安全策略强制执行、合规要求、IT/DevOps 统一部署
User:个人全局偏好(主题、编辑器设置)、跨项目工具和插件、API Key
Project:团队共享设置(权限、Hooks、MCP 服务器)、标准化工具配置
Local:本地个人覆盖、配置测试、机器特定设置(不适合他人)
settings.json 核心配置
配置文件格式(支持 JSON Schema 校验):
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test *)",
"Read(~/.zshrc)"
],
"deny": [
"Bash(curl *)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1"
}
}权限规则语法
基础格式
工具名称(参数模式)
Bash 工具权限
"Bash(git diff *)" // 允许所有 git diff 命令(* 前有空格)
"Bash(npm run test *)" // 允许 npm run test 开头的命令
"Bash(curl *)" // 拒绝所有 curl(在 deny 中)注意空格:
Bash(git diff *)匹配git diff HEAD,而Bash(git diff*)不加空格会意外匹配git diff-index等命令。
文件读写权限
"Read(~/.zshrc)" // 允许读取特定文件
"Read(./.env)" // 拒绝读取 .env
"Read(./secrets/**)" // 拒绝读取 secrets 目录所有文件
"Write(./src/**)" // 限制写入到 src 目录沙箱配置
{
"sandbox": {
"enabled": true,
"network": "none",
"pathPrefixes": [
{ "path": "/tmp", "writable": true },
{ "path": "/usr/local", "writable": false }
]
}
}pathPrefixes 定义沙箱内哪些路径可读/可写,不在列表中的路径默认拒绝访问。
各作用域文件位置
| 功能 | User 位置 | Project 位置 | Local 位置 |
|---|---|---|---|
| Settings | ~/.claude/settings.json | .claude/settings.json | .claude/settings.local.json |
| Subagents | ~/.claude/agents/ | .claude/agents/ | — |
| MCP servers | ~/.claude.json | .mcp.json | ~/.claude.json(per-project) |
| CLAUDE.md | ~/.claude/CLAUDE.md | CLAUDE.md | CLAUDE.local.md |
企业 Managed 部署
macOS(MDM / Jamf / Kandji)
通过 plist 推送 com.anthropic.claudecode 偏好域:
<key>Settings</key>
<string>{"permissions":{"deny":["Bash(rm -rf *)"]}}</string>Windows(组策略 / Intune)
注册表路径:HKLM\SOFTWARE\Policies\ClaudeCode
值名称:Settings(REG_SZ 或 REG_EXPAND_SZ),内容为 JSON 字符串。
文件方式
将 managed-settings.json 部署到:
- macOS:
/Library/Application Support/ClaudeCode/ - Linux/WSL:
/etc/claude-code/ - Windows:
C:\Program Files\ClaudeCode\
插件管理配置
{
"enabledPlugins": ["security-tools", "code-review"],
"strictKnownMarketplaces": true
}enabledPlugins:启用的插件列表strictKnownMarketplaces:仅允许从批准的市场安装插件(Managed 模式下有效)
验证当前生效配置
/config # 打开配置界面,查看所有设置
claude config # 命令行查看Claude Code 会自动为配置文件创建带时间戳的备份,保留最近 5 个版本。
原文:Claude Code settings | 来源:Anthropic 官方文档