Bash Fork炸弹之体验

最近在看一本关于Bash Script的书,其中提到了一段很怪异的代码,只有一行:

这段代码叫做fork bomb,可以到达拒绝服务攻击的效果,细节书上并没有太多描述,于是我便在虚拟机上运行了一下(顺便说一下,虚拟机是Ubuntu Server 12.04)。

一按下Enter,shell便返回到了输入提示状态。但是此时shell已经僵死,任何指令都无法响应,大概20秒左右,内存报错:

fork_bomb_test

内存不足,MySQL守护进程被Kill。。。然后就是更多的进程被Kill。。。系统完全不听使唤。

好吧,既然这玩意儿如此厉害,那就研究一下吧,以下是这13个字符的解释:

冒号可能有点看不是很清楚,换种写法:

稍微分析一下就会很清楚,这段程序会不断创建新进程,而且创建的速度会成2的时间次幂增长(这点恐怕是最恐怖的)。自然,CPU和内存会迅速被抢占,后果嘛,已经验证过了~~呵呵~~

至于Linux下的解决方案,最有效的是用ulimit命令设定用户所能创建的进程数:

2 thoughts on “Bash Fork炸弹之体验”

Leave a Reply

Your email address will not be published. Required fields are marked *