15 · 权限配置详解:allow / deny / ask 三态与通配符
——把「每次弹窗确认」变成「按规则自动放行」
上一篇你知道了权限系统的存在。这一篇解决实际问题:怎么把那些重复的确认弹窗,配置成「该放行的自动放行,该拦截的一律拦截」。核心就一个文件——settings.json。
一、权限配置在哪
Claude Code 的权限规则写在settings.json里,分两层:
| 层级 | 路径 | 作用范围 |
|---|---|---|
| 用户全局 | ~/.claude/settings.json | 所有项目生效 |
| 项目级 | .claude/settings.json | 仅当前项目生效 |
项目级规则通常覆盖全局。权限相关的字段都挂在permissions这个 key 下面:
{"permissions":{"allow":[],"deny":[],"ask":[]}}你也可以在会话里直接输入/permissions快速查看和修改当前权限。
二、allow / deny / ask 三态
每一个工具动作,最终都会落在这三种状态之一:
allow:允许,不询问,直接执行。deny:拒绝,禁止执行,Claude 会被告知不可做。ask:每次遇到都弹确认框,等你决定。
三条规则构成一个简单的决策逻辑:先看有没有命中deny(一票否决),再看allow(直接放行),最后