权限
工具 allow / deny
Section titled “工具 allow / deny”在 settings.json 的 permissions 中可配置 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 仍可能对单次操作请求你批准;反之,宽松配置也不能绕过明确的高风险确认。
高风险操作清单
Section titled “高风险操作清单”遇到这些动作时,即使 Claude Code 给出理由,也建议人工仔细检查:
- 删除文件或目录,例如
rm、清空构建产物以外的目录。 - 强推、变基、重置历史,例如
git push --force、git reset --hard。 - 部署、发布、数据库迁移、修改生产配置。
- 下载并执行远程脚本。
- 读取或输出密钥、Token、
.env、凭据文件。
- 仓库内提交
.claude/settings.json统一底线 - 敏感仓库配合 CI 与 code review
- 定期
claude doctor(若可用)检查环境 - 把“为什么允许/禁止”写进团队文档,避免后人随手放宽
- 用最小权限账号连接 MCP、数据库和云服务