设置配置
deny、ask、allow 权限规则
顺手删过「看起来没用」的配置:危险命令直接拦,push 和发布前先问,日常放行,deny 永远优先。
662 X 收藏,截至 发帖日期
.claude/settings.json
{
"permissions": {
"deny": [
"Bash(rm -rf*)",
"Bash(*--force*)",
"Edit(.env*)",
"Edit(*.pem)"
],
"ask": [
"Bash(git push*)",
"Bash(npm publish*)",
"Edit(src/config/*)"
],
"allow": [
"Bash(npm run*)",
"Bash(git commit*)",
"Bash(git add*)",
"Read(**)"
]
}
}下一步 放进项目的 .claude/settings.json,再按项目改这几个列表。
有一天,Claude 在修 bug,顺手删了一个「看起来没用」的配置文件。那个文件是生产环境密钥的引用入口。
之后我花了半小时配好 .claude/settings.json。
优先级:deny > ask > allow。deny 最高。一条命令只要匹配 deny,就算也匹配 allow,也不会执行。
权限列表这类数组设置会跨层级合并,而不是互相覆盖。所以用户级(~/.claude/settings.json)的一条 deny 和项目级(.claude/settings.json)的另一条 deny 都会生效。
业务风险我在项目级 deny,比如删 migrations。安全底线我在全局 deny,比如执行 rm -rf。两层,各自维护。
