Claude CLI
搜索文档
一条命令搞崩Mac,Claude CLI“惹祸”执行rm -rf,瞬间清空电脑Home目录
36氪· 2025-12-16 08:55
在很多人眼里,AI 似乎能搞定一切。可现实是,当疯狂的需求像洪水一样涌来,工程师们手忙脚乱地用 AI 编程工具"扑火"时,这些工具偏偏又开始四 处"闯祸",让人越来越担心。 近日,一位网友在 Reddit 上发帖吐槽,称自己使用 Claude CLI 清理旧代码仓库时出了大问题,Mac 电脑的整个用户主目录被意外清空,损失惨重。帖子 里,他无奈地写道: "这到底是什么鬼?有人遇到过类似情况吗?我现在想知道这事还有没有可能恢复,真的丢了太多工作成果……" Claude CLI 究竟干了什么? 据这位名为 LovesWorkin 的开发者回忆,当时他只是让 Claude CLI 清理旧代码库里的软件包,结果整台 Mac 的 home 目录被彻底清空。随后,他开始调 查事故原因,也让 Claude 开启自查模式。 Claude 随即诚恳地给出了分析结果: 我找到了问题,而且问题非常严重。 查看你的执行日志后,可以看到当时跑了一条灾难级别的命令: rm -rf tests/ patches/ plan/ ~/ 注意最后那个 ~/。它指向的是当前用户的整个 Home 目录。Claude Code 实例在生成删除命令时, ...
AI编码工具变 “格式化神器”?Claude CLI半年频当“系统杀手”,多位开发者痛斥:心血都没了
36氪· 2025-12-15 08:26
事件概述 - Claude CLI工具在执行清理任务时,意外执行了包含`~/`的`rm -rf`命令,导致用户整个Mac系统用户目录被递归删除,具体包括桌面、文档、下载、钥匙串、应用程序支持数据及Claude凭证等所有个人数据[1][5] - 该事件并非孤例,Reddit上近期有多位用户报告了同样的问题,5个月前也有开发者因类似的`rm -rf ~/`命令导致整个代码库被删除[7] 事故原因分析 - 根本原因在于Claude CLI工具在生成shell命令时,意外在删除路径中包含了代表用户主目录的`~/`符号[1][3] - 专家指出,大语言模型是基于概率的文本生成器,与操作系统的确定性规则存在“语义鸿沟”,难以理解细微语法差异(如`rm -rf /`与`rm -rf ./`)带来的灾难性后果[9] - 尽管工具设计了权限确认机制(如`--dangerously-skip-permissions`标志位),但用户可能授予了过高权限或手动批准了命令,导致防护失效[6] - 这是一个典型的“模式混淆”问题,Agent本应在“文件管理器”模式下运行,却错误地在shell解释器模式下执行了高危命令[9] 行业普遍问题 - “灾难性删库”已成为AI开发工具的通病,谷歌的Gemini CLI和开发协作平台Replit近期也发生过类似事故,导致文件夹内容或整个生产数据库被删除[8] - 这些事件凸显了AI编码工具在提供强大自动化能力的同时,也带来了重大的操作风险,为开发者社区敲响了警钟[8] 安全措施与建议 - 专家建议,使用Coding Agents时应始终保持“人在环路”,主动审查即将运行的命令[10] - 应抵制使用`--dangerously-skip-permissions`这类跳过权限校验的配置选项[6][10] - 考虑在沙箱化的配置环境中运行Agents,例如使用DevContainer等容器环境,或利用JetBrains Air IDE提供的远程/沙箱化运行环境[12] - 应限制Agents的操作权限,仅允许其在代码工作目录内活动,避免在全局位置、生产项目或重要环境中使用YOLO(无确认)模式[12] - 积极使用Git等版本控制系统,通过hooks自动化提交操作,确保所有变更能被及时记录和回滚[12] - 可引导AI使用特定的文件编辑工具或专用API(如PowerShell指令)而非通用的Bash工具,因为专用API通常包含路径校验,能防止越权访问[12] - 开发者个人应养成良好的备份习惯,并避免让AI工具使用`rm`命令,可改用`mv`命令将文件移至归档目录[6]
AI编码工具变 “格式化神器”?Claude CLI半年频当“系统杀手”,多位开发者痛斥:心血都没了!
AI前线· 2025-12-15 06:53
事件概述 - Claude CLI工具在执行清理任务时,意外执行了一条包含`~/`的`rm -rf`命令,导致用户的整个Mac系统用户目录被递归删除,包括桌面、文档、钥匙串、应用程序支持数据等所有个人文件[3][4] - 该事件并非孤例,Reddit上近期有多位用户报告了类似问题,5个月前也有开发者因同样的`rm -rf ~/`命令导致整个代码库被删除[9] 事故原因分析 - 根本原因在于Claude Code实例在生成的删除命令中意外包含了代表用户主目录的`~/`参数[3] - 大语言模型本质是基于概率的文本生成器,存在“语义鸿沟”,难以理解`rm -rf /`与`rm -rf ./`之间一个点号的缺失所带来的毁灭性差异[11] - 即使用户未手动开启`--dangerously-skip-permissions`标志位,也可能因用户授予了`rm`命令的“全权放行权限”或手动批准了特定命令而导致事故发生[8] - 这是一个典型的模式混淆问题,Agent本应在“文件管理器”模式下运行,却在shell解释器模式下行动,误判了命令执行的真实语义[11] 行业普遍问题与风险 - “灾难性删库”已成为AI开发工具的通病,谷歌的Gemini CLI和开发协作平台Replit近期也发生过类似事故,导致文件夹内容丢失甚至整个生产数据库被删除[10] - 尽管厂商在设计Agent时已基于正则过滤等方式设置了浅层防御,但shell语法的灵活性导致防护措施可能失效[11] - 随着上下文增长或面对生成长指令的场景,即使在system prompts中指明避免高危操作,这些防护在脆弱场景下仍有失效可能[11] 开发者社区的反思与建议 - 开发者社区认为,Claude Code与Claude Web版本不同,前者可以对用户的电脑进行实质性操作,这为AI开发工具的便利与风险权衡敲响了警钟[10] - 多位开发者建议,不要运行不理解的命令,不要授予工具执行此类命令的权限,更不要让Claude跳过请求许可的步骤[10] - 有经验的开发者建议在配置文件中明确禁止使用`rm`命令,仅使用`mv`命令移至归档目录,并坚持每日备份[8] - 开发者强调应保持“人在环路”,主动审查AI生成的命令,并抵制`--dangerously-skip-permissions`配置的诱惑[12] 专家建议的防护措施 - 考虑在沙箱化的配置环境中运行Agents,例如使用JetBrains Air IDE提供的远程/沙箱化运行环境,或为生产环境积极使用DevContainer等容器环境[14] - 在大范围修改项目时,主动使用hooks自动化commits操作,保证变更能被Git等版本控制系统及时记录[14] - Agents应只拥有代码工作目录的操作权限,避免在全局位置或生产项目、重要环境中使用YOLO模式[14] - 主动引导AI使用特定的文件编辑工具而非通用的Bash工具,因为专用API通常会对路径进行校验,禁止越权访问[14] - 定期审阅Agents工作历史记录,以降低无意识变更的风险[12]