有程序员的群里面,总会看到下面这个表情包:
是的,传说中的"删库跑路"。rm也很无辜,很多公司事故都甩锅给ta。"我不服啊~ 这个锅, 我不背!"
今天回家的路上,和朋友开玩笑,提到了一个问题:“rm -rf /* 这个命令会删掉自己吗?” (Linux中,所有东西都是以文件形式存在的)
回家后,就准备了一台centos服务器,准备实验一波。如下所示,是一台服务器,本地虚拟机内的,切勿拿真实服务器耍!
一台完整的服务器,基本命令都有。下面开始做实验:第一次敲,rm -rf /
原本想象,会balabala一大堆东西被删掉的。结果:
是的,Linux自身有一道安全保护机制:"告诉你哟!你在 '/' 这个路径上操作删除,很危险的! 但是,如果你坚持要'玩火',没关系,我给你一个打火机,在命令后面加上 '--no-preserve-root' 。"
第二次敲,rm -rf / --no-preserve-root 结果真的开始刷屏了:
可以看到,rm操作确认执行了,但还是有些文件不能删掉。没关系,等刷完,我再试下一遍。
第三次敲,rm -rf / --no-preserve-root 敲完凉凉的,rm命令找不到,被自己干掉了。
首先看看自己的位置,pwd,有反应,感觉有戏。创建文件夹试试?not found! 查找试试?not found!
常用的基本命令工具都被删掉。试着退出ssh,重新尝试进去,发现进不了了:
没关系,还有一个大招,"重启服务器!",马上重启,看看会不会还原:
实验结果是,不会。打开是系统引导界面。Linux完全进去不了了!报废了。
友情提示,千万别去服务器上试,后果很严重!
不管是测试环境还是生产环境,"rm -rf" 指令尽量避免使用。