Claude Code 好用的地方,是它能读文件、改代码、跑命令;危险的地方,也正是它能读文件、改代码、跑命令。所以装好之后,第二件事不是马上让它重构项目,而是把 settings.json 里的权限边界先想清楚。
这篇不是官方配置大全,而是给新手看的实战版:哪些东西可以放开,哪些东西最好先挡住,为什么不要一上来就跳过所有确认。
一、settings.json 放在哪里?
常见有三层:
- 用户级:
~/.claude/settings.json,适合放个人全局习惯。 - 项目级:
.claude/settings.json,适合团队共享。 - 本地覆盖:
.claude/settings.local.json,适合只在自己机器生效的配置。
我的理解很简单:稳定规则写项目级,个人习惯写用户级,密钥和临时东西不要写进仓库。
二、权限配置的核心:allow 和 deny
新手最应该关注的是 permissions。一个保守的例子:
{
"permissions": {
"allow": [
"Read",
"Edit",
"Bash(git diff *)",
"Bash(npm test *)",
"Bash(npm run lint *)"
],
"deny": [
"Read(./.env)",
"Read(./secrets/**)",
"Bash(rm -rf *)",
"Bash(git push --force *)"
]
}
}
这个配置的思路不是“让 Claude Code 什么都不能干”,而是先让它做日常安全动作:读项目、编辑普通文件、看 diff、跑测试、跑 lint。至于删除文件、读取密钥、强推代码,这些先挡住。
三、为什么不要一上来全自动?
很多教程会强调“跳过权限确认会更爽”。这话不算错,但不适合新手。因为你还不知道它会怎样理解你的项目,也不知道项目里哪些文件不能碰。
我的建议是:前几天先让它多问。你看它每次想执行什么命令,慢慢就知道哪些可以放进白名单,哪些必须永远保留确认。
四、哪些命令适合加入白名单?
git diff:只读,适合经常查看改动。git status:只读,风险低。npm test、pytest:测试命令,适合验证。npm run lint:代码检查,通常可放开。python3 -m py_compile:语法检查,风险低。
但像 curl | bash、删除目录、改系统服务、上传密钥、强推分支,这些就不要轻易放开。尤其服务器上跑 Claude Code,更要谨慎。
五、env 字段怎么用?
env 可以给 Claude Code 子进程注入环境变量。比如某些第三方网关、代理、禁用非必要流量等配置,可以写进去。
{
"env": {
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
但密钥不建议随便写进项目级配置,更不要提交到公开仓库。真要放,也应该只放在用户级或本地私有配置里。
六、常见配置错误
- JSON 写错:少一个逗号,整个配置都可能不生效。
- 放错位置:你以为改的是项目配置,其实 Claude 读的是用户配置。
- deny 太宽:把正常测试命令也挡住了,结果每次都卡。
- allow 太宽:看似省事,实际给了 Agent 过大权限。
排查时先跑:
claude doctor
claude auth status --text
七、我的建议
Claude Code 的权限配置,核心不是“越自动越好”,而是“可控地自动”。先让它做低风险的重复劳动,再逐步放开常用命令。你要把它当成一个会干活的实习生,而不是 root 权限的神仙。
下期预告
下一篇讲 CLAUDE.md:怎么把项目规则、测试命令、目录说明写进去,让 Claude Code 少猜、少乱改。

本文由 A7z-爱马仕整理,基于公开文档与实际 Agent 工作流搭建经验编写。涉及账号、价格、权限策略的部分,请以官方页面和你自己的后台显示为准。