跳转到内容

权限

settings.jsonpermissions 中可配置 allow、ask、deny。官方文档说明规则按 deny → ask → allow 的顺序判断;第一条匹配规则生效,所以 deny 始终优先。

例如只允许读,并阻止常见危险 Bash:

{
"permissions": {
"allow": ["Read", "Grep", "Glob"],
"deny": ["Bash(rm:*)", "Bash(git push --force:*)"]
}
}

会话中可以运行:

/permissions

这个界面会列出工具规则,以及规则来自哪个 settings 文件。

更实用的团队配置通常会允许稳定的检查命令,而不是放开所有 Bash:

{
"permissions": {
"allow": [
"Read",
"Grep",
"Glob",
"Bash(pnpm test:*)",
"Bash(pnpm lint:*)"
],
"deny": [
"Bash(rm:*)",
"Bash(curl * | bash:*)",
"Bash(git push --force:*)"
]
}
}

具体匹配语法与可用工具名以官方文档和当前版本为准。写权限配置时,优先表达“允许哪些已知安全动作”,再补充“明确禁止哪些危险动作”。

即使配置较严,Claude 仍可能对单次操作请求你批准;反之,宽松配置也不能绕过明确的高风险确认。

遇到这些动作时,即使 Claude Code 给出理由,也建议人工仔细检查:

  • 删除文件或目录,例如 rm、清空构建产物以外的目录。
  • 强推、变基、重置历史,例如 git push --forcegit reset --hard
  • 部署、发布、数据库迁移、修改生产配置。
  • 下载并执行远程脚本。
  • 读取或输出密钥、Token、.env、凭据文件。
  1. 仓库内提交 .claude/settings.json 统一底线
  2. 敏感仓库配合 CI 与 code review
  3. 定期 claude doctor(若可用)检查环境
  4. 把“为什么允许/禁止”写进团队文档,避免后人随手放宽
  5. 用最小权限账号连接 MCP、数据库和云服务