Skip to content

危险 rm 加了重定向也不再漏问:always-ask 修好了 ​

Claude Code 对「可能毁掉整机或家目录」的 rm 会强制 always-ask:再急也要人点头。CLI 2.1.287 修了一条绕过路径——同一条命令里若还把输出重定向到 ~ 或带通配的路径,旧版可能把这条强确认弄丢,危险删除就有机会直接跑。

这是安全向修复,不是新功能开关:升上去就该生效。

问题长什么样 ​

典型组合(示意,不要在生产机上试真删):

  • 目标是 /、家目录等高危路径上的 rm(本来应 always-ask)
  • 同命令又带输出重定向,且重定向目标涉及 ~ 或通配

旧逻辑在解析 / 分类时,可能把「危险 rm」与「带重定向的写」搅在一起,结果该弹的确认没了。人眼以为「危险命令总会问」,实际已经漏问——这比「提示文案难看」严重得多。

升级后:这类组合应重新落回 always-ask,先问再跑。

为什么值得单独写一篇 ​

  1. 误删不可逆:家目录、根路径相关删除一旦漏确认,恢复成本极高。
  2. 模型爱拼管道 / 重定向:自动生成的 Bash 经常 rm ... > somewhere 或 2>&1 | tee ...,更容易撞上这条边角。
  3. 信任假设被打破:团队若写过「危险 rm 一定要人批」,旧 bug 会让手册与真实行为不一致。

同版本还有一条相关加固:经仓库内已提交的符号链接写到敏感文件或工作区外时,会点名落点并等人确认——和「危险 rm 别漏问」是同一安全叙事下的不同面。

和相近能力怎么区分 ​

能力关系
权限与沙箱讲允许哪些工具 / 沙箱;本文是 Bash 危险命令的确认是否丢失
权限提示「2 of 5」队列可见性;本文是该不该问
整工具 Bash allow / hook 放行2.1.287 起,对文件工具会直接拒绝的敏感路径,shell 写入也会改为先问再跑,与 rm 修复互补
Windows 拒绝 Bash 时关掉 PowerShell 的启动警告另一条安全 UX;不是 rm 逻辑

升级后建议动作 ​

  1. claude --version 确认 ≥ 2.1.287(安全修复建议全队尽快升)。
  2. 在空沙箱或一次性容器里,用无害路径复现「高危形态 + 重定向」:应看到确认,而不是静默执行。
  3. 审查团队是否曾用「永远 allow 某类 Bash」绕过确认——修复后仍可能被宽规则打穿,宽规则要单独收。
  4. 操作手册补一句:危险删除不得依赖「没弹窗 = 安全」;升级前后都以提示为准。
  5. 与 allowedProviders、沙箱策略一起看:少权限、必确认、可回滚,三层一起收。

小结 ​

  • 2.1.287 修复:危险 rm(如针对 / 或家目录)在叠加重定向到 ~ / 通配时,不再丢掉 always-ask。
  • 目的是挡住「以为会问、实际已跑」的误删。
  • 请尽快升级并在隔离环境抽查;宽 Bash allow 仍可能绕过确认,需单独治理。

安全修复类版本:能升就升,别等再撞一次才补。

Claude-cn.org,专注于 Claude Code 中文教程