rm -rf/ 又引发了一个血案
Marco Marsala是一家小型主机托管公司的老板,但是他最近遇到了一个天大的麻烦——由于脚本错误,他不慎删光了所有客户的数据。更糟糕的是,由于Bash脚本代码中包含了一行变量未定义的“rm -rf {foo}/{bar}”,连备份也连带着被干掉了——而在通常情况下,备份网络理应和正常的生产力基础设施隔离开的。
这一错误源自 Ansible 上糟糕的代码设计,这款 Linux 实用工具被用于在多台不同服务器上自动执行脚本。
开发者解释到,实际参数应该是“rm -rf {foo}/{bar}”,foo 和 bar 是脚本中动态传递的两个变量。
然而由于变量处理出错,通用语法未能成功在 bash 命令中插值,所以最终指令就变成了可怕的“rm -rf /”。
“rm -rf/”意味着擦除根路径“/”下挂载的所有内容而无需询问。
鉴于 Marsala 运行着 1535 个集群,其本来是能够在数小时(至数日)内恢复的。但由于未能妥善实现生产环境和备份环境的隔离,备份档也全没了。
不得已之下,他只能上网发帖求救,然而没人能救得了他了。当然,也许最好的建议是给律师打个电话,那样或许还不至于赔得太惨。
本文文字及图片出自 www.cnbeta.com
你也许感兴趣的:
- Let’s Encrypt:准备开始签发IP地址证书
- 谷歌浏览器将提供内置翻译和语言检测 API
- OpenAI 将用 Rust 重建 Codex CLI,放弃之前的 TypeScript 版本
- 用 AI 生成的安卓 App:优点、缺点与令人震惊之处
- 为什么所有浏览器的用户代理(User-Agent)都以“Mozilla/”开头?
- 新发现的 Linux udisks 漏洞使攻击者能够在主要 Linux 发行版上获得 root 权限
- 没错,没人关心 Linux 上的使用友好性
- Git Notes:Git 最酷但最不受欢迎的功能
- Kubernetes 2.0 将会是什么样子
- bzip2 crate 从 C 切换到 100% rust
This a joke…
据说这人为了写书,观察大家的反应,而最终没有人发现,
Linux下要执行这段代码时,需要加确认项,否则将无法执行成功。
“如果你驾驭不了linux,就不要玩linux”
试下sudo chmod -R 000 /