聊天讨论 Claude Code 后天起默认 Auto 模式了——我第一时间改了这 6 个设置

193577746(kyriewen) · 2026年08月12日 · 13 次阅读

刷到 Anthropic 的公告时是周五晚上。大意是:8 月 14 日起,Claude Code 的 Pro、Max 和 Team 用户将默认启用 Auto 模式。

翻译成人话就是——后天开始,Claude Code 不再逐条问你"可以执行这个命令吗?",而是自己判断安全性后直接执行。修改文件、运行脚本、执行 git 操作,全部自动。

我当时第一反应是打开终端检查了自己的 settings.json。不是因为我觉得 Auto 模式一定会炸,而是因为这件事的默认值变了,意味着你什么都不做的话,行为就变了

Anthropic 为什么敢这么做

他们给了三个数据:

数据一:97% 的权限提示被无脑批准。

Anthropic 统计了所有 Claude Code 用户的权限操作——每次 Claude 要执行命令时弹出的"Allow?"确认框,97% 的情况下用户直接点了同意

这意味着那个确认框形同虚设。你以为自己在"审核",实际上你在条件反射地按回车。

数据二:62% 的用户已经在用 bypassPermissions 或类似设置。

超过一半的付费用户早就主动关掉了权限确认。Claude Code 的六种权限模式里,最严格的 Manual 模式反而是少数人在用。

数据三:1053 人对照实验,Auto 模式比人工审核安全 6.5 倍。

Anthropic 做了一个对照研究——同样的危险命令序列,Auto 模式的内置分类器拦截了89%,而人工逐条审核只拦截了13.6%

原因很简单:机器不会疲劳,不会在第 47 次"Allow?"的时候走神点了同意。人会。

但是——11% 的漏网率

89% 拦截率的另一面是:有 11% 的危险命令,Auto 模式也没拦住。

这 11% 是什么?根据公开的测试报告,主要是:

  • 看起来像正常操作但实际有副作用的命令(比如rm -rf被包在一个看似无害的脚本里)
  • 涉及环境变量或敏感路径的间接操作
  • 组合命令中的链式危险操作(单独看每步都安全,串起来就危险)

11% 听起来不多,但如果你一天跑 100 次命令,平均每天有 11 次危险操作会被放行。

Auto 模式到底会"自动"做什么

打开 Auto 模式后,Claude Code 会在以下操作上不再询问你

操作类型 Manual 模式 Auto 模式
读取文件 自动 自动
写入/修改文件 ⚠️ 需确认 ✅ 自动执行
执行 Bash 命令 ⚠️ 需确认 ✅ 自动执行(除非触发危险分类器)
git add/commit ⚠️ 需确认 ✅ 自动执行
git push ⚠️ 需确认 🔴 分类器拦截(大多数情况)
rm/delete 操作 ⚠️ 需确认 🟡 取决于路径和上下文
安装 npm 包 ⚠️ 需确认 ✅ 自动执行
修改 package.json ⚠️ 需确认 ✅ 自动执行

关键变化:文件写入和 Bash 命令执行不再需要你确认。 这意味着 Claude 可以直接改你的代码、直接跑脚本、直接装包——只要它的内置分类器认为"安全"。

我改了哪 6 个设置

看完公告后我做的第一件事不是关掉 Auto 模式(那样就退回到 97% 无脑点同意的状态了),而是在 Auto 模式的基础上加约束

设置 1:配置 allowedTools 白名单

// .claude/settings.json
{
  "permissions": {
    "allow": [
      "Read",
      "Glob",
      "Grep",
      "Write(src/**)",
      "Edit(src/**)"
    ],
    "deny": [
      "Write(.env*)",
      "Write(*.config.js)",
      "Bash(rm *)",
      "Bash(git push*)"
    ]
  }
}

核心思路:只允许 Claude 自动写入src/目录下的文件。 配置文件、环境变量、根目录文件全部需要确认。这样 Claude 可以自由改业务代码,但碰不了构建配置和敏感文件。

设置 2:锁死.env 和敏感文件

{
  "permissions": {
    "deny": [
      "Read(.env*)",
      "Write(.env*)",
      "Read(**/*secret*)",
      "Read(**/*credential*)",
      "Bash(*SECRET*)",
      "Bash(*TOKEN*)",
      "Bash(*PASSWORD*)"
    ]
  }
}

Auto 模式下 Claude 能读取项目里的任何文件——包括.env。如果你的.env里有数据库密码、API 密钥,Claude 读到之后可能在生成代码时把它们硬编码进去,或者在执行命令时意外暴露。

deny 规则优先级高于 allow,配了 deny 之后即使 Auto 模式也会被拦住。

设置 3:git 操作限制

{
  "permissions": {
    "deny": [
      "Bash(git push*)",
      "Bash(git reset --hard*)",
      "Bash(git checkout -- *)",
      "Bash(git clean*)",
      "Bash(git branch -D*)"
    ]
  }
}

Auto 模式下 Claude 可以自动git addgit commit——这其实挺方便的。但push、reset --hard、强制删除分支这些不可逆操作,必须手动确认。

一个真实案例:上周看到有人发帖说 Claude Code 在 Auto 模式下自动 push 了一个有 debug 日志的 commit 到 main 分支。原因是 Claude 判断"commit+push 是一个完整的工作流",分类器没有拦截 push 操作。

设置 4:npm install 限制

{
  "permissions": {
    "deny": [
      "Bash(npm install *--global*)",
      "Bash(npx *)",
      "Bash(yarn global*)"
    ],
    "allow": [
      "Bash(npm install)",
      "Bash(npm run *)",
      "Bash(yarn install)",
      "Bash(yarn add *)"
    ]
  }
}

允许 Claude 在项目内装包(npm installyarn add),但禁止全局安装和 npx 执行。npx 可以下载并执行任意包——这是一个巨大的攻击面。

设置 5:CLAUDE.md 加入硬规则

# CLAUDE.md

## 安全规则(Auto模式下必须遵守)

- 永远不要修改 .env、.env.local 或任何包含环境变量的文件
- 永远不要执行 git push,所有push操作必须由我手动执行
- 永远不要删除文件,如需删除请先列出文件列表等我确认
- 永远不要修改 CI/CD 配置文件(.github/workflows/*, .gitlab-ci.yml)
- 新增依赖时必须说明理由,不要静默安装

CLAUDE.md 是 Claude Code 的行为规则文件。Auto 模式下 Claude 会遵守这些规则——当然,这不是"硬性"限制(settings.json 的 deny 规则才是),但它提供了一层语义级别的防护。

设置 6:开启操作日志

{
  "auditLog": {
    "enabled": true,
    "path": ".claude/audit.log",
    "includeCommands": true,
    "includeFileWrites": true
  }
}

Auto 模式下最危险的事情不是 Claude 执行了什么,而是你不知道它执行了什么。开启审计日志后,每一次文件修改和命令执行都会被记录。每天花 2 分钟扫一眼日志,比事后排查问题快 100 倍。

不同场景的推荐配置

场景 推荐模式 关键设置
个人 side project Auto + 宽松 allow 允许大多数操作,仅 deny push 和 rm
公司项目(有 CI) Auto + 严格 deny 锁死 config/env/CI 文件,仅 allow src/
多人协作仓库 Plan 模式 让 Claude 先出方案再执行,避免冲突
生产环境相关 Manual 别用 Auto,逐条确认
开源项目维护 Auto + deny push 防止意外 push 到公开仓库

为什么不直接关掉 Auto 模式

可能有人会说:既然有风险,为什么不直接改回 Manual?

因为 Anthropic 的数据是对的——97% 的确认提示你都是无脑点的。Manual 模式给你的不是安全感,是"安全感的幻觉"。你觉得自己在审核,实际上第 10 次之后你就不看了。

Auto 模式 + 精确的 deny 规则,实际上比 Manual 模式更安全

  • Manual:所有操作都问你 → 你疲劳后全部无脑批准 → 危险操作也被批准
  • Auto+deny:安全操作自动执行 → 你配置的 deny 规则硬性拦截 → 真正危险的操作必须手动确认

区别在于:Manual 模式的安全取决于你的注意力(会疲劳),Auto+deny 的安全取决于你的配置(不会疲劳)。

8/14 之前的检查清单

后天 Auto 模式就默认开启了。如果你还没配置过,至少做这几件事:

# 1. 检查当前的权限模式
cat .claude/settings.json

# 2. 如果文件不存在,创建一个
mkdir -p .claude
touch .claude/settings.json

# 3. 至少加上这个最小化安全配置
cat > .claude/settings.json << 'EOF'
{
  "permissions": {
    "deny": [
      "Write(.env*)",
      "Bash(git push*)",
      "Bash(git reset --hard*)",
      "Bash(rm -rf*)"
    ]
  }
}
EOF

# 4. 确认CLAUDE.md存在且有安全规则
cat CLAUDE.md

Auto 模式安全设置速查表

保护目标 deny 规则 优先级
环境变量/密钥 Write(.env*), Read(.env*) 🔴 必须
不可逆 git 操作 Bash(git push*), Bash(git reset --hard*) 🔴 必须
文件删除 Bash(rm -rf*), Bash(rm -r *) 🔴 必须
CI/CD 配置 Write(.github/**), Write(.gitlab-ci.yml) 🟡 强烈建议
包管理配置 Write(package.json) 🟡 视情况
全局安装 Bash(npm install *--global*), Bash(npx *) 🟡 强烈建议
构建配置 Write(webpack.config*), Write(vite.config*) 🟢 可选

核心原则:让 AI 自动做安全的事,硬性拦截危险的事

Auto 模式不是洪水猛兽。Anthropic 的数据证明了一个尴尬的事实:大多数人的"人工审核"其实比 AI 分类器更不靠谱。

但 11% 的漏网率也是真实的。后天开始,如果你什么都不配置,Claude Code 就会用它自己的判断来决定哪些操作安全——而它的判断有 11% 的概率是错的。

所以正确的策略不是二选一(全手动 vs 全自动),而是:让 Auto 处理 97% 的安全操作,用 deny 规则硬性拦截那 3% 你绝对不允许自动执行的东西。

你的 Claude Code 配置好了吗?8 月 14 日后天就到了。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号