权限与 settings.json

权限:三档

1允许(不再问)2询问(每次问你)3拒绝(不让做)

权限决定"哪些操作不用问你"。下面是一份保守的示例:读类操作放行,提交/推送/远程命令要确认,危险操作和密钥文件禁止。

.claude/settings.example.json 下载
{
  "permissions": {
    "allow": [
      "Bash(git status:*)",
      "Bash(git diff:*)",
      "Bash(git log:*)",
      "Bash(ls:*)",
      "Bash(wc:*)",
      "Bash(node --check:*)",
      "Bash(python -m py_compile:*)",
      "Read",
      "Glob",
      "Grep"
    ],
    "ask": [
      "Bash(git commit:*)",
      "Bash(git push:*)",
      "Bash(scp:*)",
      "Bash(ssh:*)"
    ],
    "deny": [
      "Bash(rm -rf:*)",
      "Bash(git reset --hard:*)",
      "Read(./.env)",
      "Read(./secrets/**)"
    ]
  }
}
安装脚本不会改你的 settings.json,只生成 settings.kit-example.json;你自己对比后再合并。

权限(Permission)

Claude Code 每次要跑命令或改文件前,会看权限设置。设置写在 settings.json,有几层,越靠上越优先:

层级位置
公司统一管理managed-settings.json 等
本次启动参数claude --settings
项目本地(个人,不入库).claude/settings.local.json
项目共享.claude/settings.json
用户全局~/.claude/settings.json(Windows:C:\Users\用户名\.claude\settings.json)
{
  "permissions": {
    "allow": ["Bash(git status:*)", "Bash(npm run build)"],
    "deny":  ["Bash(rm -rf:*)"]
  }
}

allow 里的不再询问,deny 里的直接拒绝,其余按当前"模式"处理。常见模式从严到松:手动确认(default)→ 自动接受编辑(acceptEdits)→ 自动(auto,后台有审核)→ 只按清单(dontAsk)→ 计划模式(plan,只看不改)→ 跳过所有检查(bypassPermissions,官方建议只在隔离环境用)。按 Shift+Tab 可以在对话中切换模式。官方说明:设置、权限。

T00 的经验:不要为了省点击就把所有检查都关掉。更好的办法是把"每天重复做的固定命令"逐条加进 allow 清单。