6 权限、设置与安全边界:哪些命令可以放行,哪些必须卡住

Claude Code 和普通聊天工具最大的区别,是它可以真的动你的项目:读文件、改文件、运行命令、连接工具。能力强了以后,安全边界就必须提前设好。
我的原则很简单:读代码可以宽一点,改代码要看范围,删除、上传、部署、改数据库必须谨慎。
先理解权限为什么重要
你让 Claude Code 跑 npm run build,通常没问题。你让它跑 rm -rf、git reset --hard、scp、systemctl restart、数据库迁移,就要非常小心。
这些命令不是不能用,而是必须知道它会影响什么。尤其是生产服务器、用户数据、支付、密钥、证书,不能因为“AI 说需要”就直接放行。
用 /permissions 管理规则
官方命令参考里有 /permissions,用于管理 allow、ask、deny 规则。你可以把常见低风险命令放进允许列表,把高风险命令保留为询问或拒绝。
我常见的分层是:
- 允许:
git status、git diff、rg、ls、读取文件、运行项目已有测试。 - 询问:安装依赖、修改配置、运行部署脚本、远程连接。
- 拒绝:读取私钥、打印
.env、删除大目录、重置 Git 历史、直接操作生产数据库。
这不是固定模板,你要按自己的项目调整。
settings.json 不要乱抄
Claude Code 的设置可以放在 .claude/settings.json 等位置。官方设置文档里有很多选项,比如 MCP server allowlist、hooks URL allowlist、权限规则、自动记忆开关等。
新手不要一上来就复制一大份别人家的设置。你应该先只写最少几条:
{
"permissions": {
"deny": [
"Bash(rm -rf *)",
"Read(.env)",
"Read(**/*.pem)"
]
}
}
具体语法要以官方文档和你当前版本为准。这里想表达的是思路:先把明显危险的东西挡住,再逐步增加便利规则。
敏感文件的处理
项目里常见的敏感内容包括:
.env.pem、.key- 证书目录
- 数据库 dump
- 服务器密码
- OAuth token
- 支付回调密钥
这些文件不应该进入教程、日志、提交记录,也不应该让 Claude Code 为了“排查问题”直接打印出来。你可以让它读取变量名、配置示例、.env.example,但不要让它读取真实值。
部署命令要分级
本地构建失败,损失很小。生产部署失败,影响真实用户。所以我建议把部署分成三步:
- 让 Claude Code 先说明要执行的部署命令。
- 让它在本地构建或测试。
- 再决定是否远程部署。
如果是团队项目,还应该把部署脚本写进文档和 CI,不要让每个人靠口头记忆。
Claude Code 用得越熟,越应该把安全规则写得越清楚。让它省时间,不是让它越权。
下一篇讲 Skills 和命令。重复工作不要每次都重新写 prompt,可以沉淀成自己的工具。
参考资料:
Continue