当前位置:首页 > 科技资讯 > 正文

Claude CLI误操作引发用户数据灾难,开发者社区警醒

Claude再度引发轩然大波。近日,一则Reddit上关于Claude CLI的控诉帖引发了广泛讨论。

据称,一位开发者在使用Claude CLI清理旧仓库中的软件包时,不慎将整个用户目录乃至整个Mac系统清空,损失惨重。

究竟发生了何种意外?

Claude自查发现:执行了致命命令

据该开发者透露,Claude给出的回复既让人震惊又无奈:

我已找到问题所在,情况非常严重。检查你的日志后,我发现执行了这条灾难性命令:

bashrm -rf tests/ patches/ plan/ ~/

看到最后的 ~/ 了吗?它代表你的整个用户主目录。

一个意外使得删除命令中包含了 ~/, 这将彻底清除以下内容:

你的完整桌面目录(~/Desktop)

文档、下载文件及所有个人数据

钥匙串(~/Library/Keychains)

Claude凭证(~/.claude)

应用程序支持数据

/Users/ 目录下的所有内容都将被删除。

这也解释了其Mac系统为何出现如下情况:

  • 桌面内容消失
  • 钥匙串被删除
  • Claude凭证丢失
  • “当前工作目录已被删除”的错误提示

Claude CLI误操作引发用户数据灾难,开发者社区警醒 CLI  灾难性命令 AI 工具 安全操作 第1张

“看到最后的 ~/ 了吗?它代表你的整个用户主目录”,网友对Claude的这句回复纷纷调侃,称其为“年度喜剧名场面”。

rm命令成“噩梦”,多位开发者痛斥

遭遇此事件后,该开发者发帖求助:“有人遇到过这种情况吗?我正在尝试恢复,但心血已付诸东流……”

Claude CLI误操作引发用户数据灾难,开发者社区警醒 CLI  灾难性命令 AI 工具 安全操作 第2张

有经验的开发者在帖子下方提醒道,Claude Code中“完全放开操作权限”的标志位命名为“—dangerously-skip-permissions”并非空穴来风,字面意思为“危险跳过权限校验”。

“假设你没手动开启这个标志位,那么要么是你给了它对rm命令的‘全权放行权限’,要么是你手动批准了这条特定命令。无论哪种情况,这个权限系统的存在都是为了保护你。但Claude Code在设计时就明确了:模型输出的任何rm命令(以及大多数其他文件系统命令)都可能存在风险,必须先向用户确认。”

“删库”成AI工具通病,开发者们如何做?

“以这种惨烈的方式学到这个教训真的太不值了。”不少开发者因这起事件心有余悸,纷纷提醒道,“不要运行你不理解的命令,也不要授予工具执行此类命令的权限。”

“灾难性删库”似乎已成为不少AI开发工具的通病。今年7月,有开发者在Gemini CLI的GitHub项目下提交了一则issue,让其把文件移动到新目录,结果不仅任务失败还把原文件夹里的所有内容都搞没了。同月,有用户痛斥开发协作平台Replit删除了他公司的整个生产数据库。

“误删整个用户目录是一个典型的模式混淆问题。”资深AI解决方案专家孙涛表示,“Agent本应在‘文件管理器’模式下运行,却在shell解释器模式下行动,误判了命令执行的真实语义。”

“在使用Coding Agents时,除了保持‘人在环路’,主动审查运行的命令情况,还应该考虑对Agents运行环境的配置与约束因素。”孙涛提出了以下有效措施:

  1. 使用沙箱化的配置环境中运行agents。
  2. 生产环境积极使用DevContainer等容器环境。
  3. 大范围修改项目时,使用hooks自动化commits操作。
  4. Agents应只拥有代码工作目录的操作权限。
  5. 引导AI使用特定的文件编辑工具而非通用的Bash工具。