Codex 把我电脑文件都删了

发布于

昨天为了赶在额度重置前把额度用完,出门前交代 codex 自己去远程验证整个项目脚本和文档的正确性,开了 full access,回来一看悲剧了,把我 C 盘和 D 盘文件全删了……估计删了我两三百 G 的数据,上百万个文件……

用的模型是 gpt-5.6-sol xhigh fast。真他妈快啊,除了少数被进程占用的文件,全给我删了。

让 Claude Code 分析了下 codex 的记录:

wsl.exe bash -lc 'set -e; d=$(mktemp -d); cd "$d";
apt-get download sshpass >/dev/null;
dpkg-deb -x sshpass_*.deb extracted;
cp extracted/usr/bin/sshpass /tmp/xxx-semantic-bin/sshpass;
chmod 700 /tmp/xxx-semantic-bin/sshpass;
cd /; find "$d" -depth -delete; # ← 这一句
/tmp/xxx-semantic-bin/sshpass -V'

它的本意只是:下个 sshpass 二进制,然后把 mktemp -d 建的临时目录删掉。目标本该是 /tmp/tmp.XXXXXX。

关键证据在 file:4249 —— Win32_Process 记录的操作系统层面真实命令行里,$d 两侧的双引号已经没了(PowerShell 把参数传给原生 exe 时没有转义内层的 ")。

我极少在 Windows 上原生执行 claude/codex,更从来没给过 full access,没想到第一次给它 full access 就翻船了……

太倒霉了。有一万个如果可以让这件事不要发生。如果不是我有云备份,我大概已经去自首了。

---

原文链接:[点击查看](https://www.v2ex.com/t/1233011)

评论(7)

虽然很同情楼主,但我平常拿 Claude 搞事情的时候,也经常遇到这种让人哭笑不得的狗屎操作……

· 0 个赞

看完楼主的惨痛经历,是不是可以这么理解:如果在 Windows 环境下跑,发生这种误删惨案的概率会大得多?

· 0 个赞

回复

Windows 的命令行转义纯纯是祖传老坑了。虽说 Linux 和 Mac 也不能完全幸免,但在 Windows 下暴雷的概率估计是其他平台的十倍以上……

说到底,绝大多数的删库惨案都是命令行的引号和转义搞鬼。只能说 Bash is all you need 啊!

· 0 个赞

在 Windows 上搞 vibe coding 确实容易变成“删库跑路”,之前论坛里就有不少血淋淋的案例了,只能说且玩且珍惜吧。

· 0 个赞

盲猜楼主用的是 WSL 沙盒隔离方式,其实 Codex 自带 Windows 原生沙盒的,你这波和 WSL 的运行机制脱不开干系。

1. WSL 默认把 C/D 盘挂载到 `/mnt/c` 之类,你的 `find` 命令没加 `-xdev` 或 `-mount`,从根目录开搜时直接穿透进了这些挂载点,这应该是导致其他盘被一波带走的主因。
2. 在 PowerShell + 原生 exe + WSL + Bash 这种套娃环境里,引号转义出错简直是家常便饭。
3. Windows + WSL 本身就有路径拼接的隐患,我在好几个 Agent 里都踩过同样的坑。

给楼主几个避坑建议吧:
- `find ... -delete` 是高危操作,以后最好写个专用的 skill 加上严格限制,避免参数错误时它瞎删。
- 别再用 `bash -lc` 拼接了,换成 `wsl.exe --exec bash ...` 会更安全点。
- 强烈建议放弃 WSL,直接在 Codex 设置里开 Windows 原生沙盒隔离,它会建两个特殊账户来跑代码,能避开绝大多数 WSL 的路径毛病。
- 跑这种全自动的高权限任务,最好弄个独立的 Windows 账户或者直接扔进容器里跑。
- 我自己写了个 skill 强制全局禁止删除,每次任务结束把改动列出来给我确认,无人值守保平安,哪怕是要清理垃圾,也得走指定脚本确认路径后再删。

· 0 个赞

回复

我用的是原生的 codex.exe 跑在 powershell 里,实在搞不懂它为啥非要跨过去调 wsl 来执行 bash。估计是模型训练时习惯了 bash 环境,哪怕 PowerShell 能搞定的事它也硬要在 WSL 里跑,这就平白多了一层参数转义的坑。

这次确实是我大意了,为了赶紧出门把额度跑完,不想它在后台卡着等确认,就手滑给了 full access,估计根本没沙盒啥事。纯纯的一次自杀式的 vibe coding,以后还是得老老实实设好权限。

· 0 个赞

好家伙,这算不算 AI 嫌弃你的软件?我之前跑分析的时候,AI 觉得有个 App 碍事,居然直接顺手帮我把手机上的软件给卸载了,当时人都看傻了。

· 0 个赞

0.052382s