昨天为了赶在额度重置前把额度用完,出门前交代 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 就翻船了……
太倒霉了。有一万个如果可以让这件事不要发生。如果不是我有云备份,我大概已经去自首了。
