我偶然发现了这个页面,无法理解这是如何工作的.
此命令"指数生成子进程,直到您的盒子锁定".
但为什么?我不太喜欢的是冒号.
user@host$ :(){ :|:& };:
dbr.. 79
:(){ :|:& };:
..定义一个名为的函数:
,它产生自身(两次,一个管道到另一个)和背景本身.
有换行符:
:() { :|:& }; :
将:
函数重命名为forkbomb
:
forkbomb() { forkbomb | forkbomb & }; forkbomb
您可以通过使用ulimit
限制每个用户的进程数来防止此类攻击:
$ ulimit -u 50 $ :(){ :|:& };: -bash: fork: Resource temporarily unavailable $
更永久地,你可以使用/etc/security/limits.conf
(至少在Debian和其他人身上),例如:
* hard nproc 50
当然这意味着你只能运行50个进程,你可能希望根据机器的运行情况增加这些进程!
:(){ :|:& };:
..定义一个名为的函数:
,它产生自身(两次,一个管道到另一个)和背景本身.
有换行符:
:() { :|:& }; :
将:
函数重命名为forkbomb
:
forkbomb() { forkbomb | forkbomb & }; forkbomb
您可以通过使用ulimit
限制每个用户的进程数来防止此类攻击:
$ ulimit -u 50 $ :(){ :|:& };: -bash: fork: Resource temporarily unavailable $
更永久地,你可以使用/etc/security/limits.conf
(至少在Debian和其他人身上),例如:
* hard nproc 50
当然这意味着你只能运行50个进程,你可能希望根据机器的运行情况增加这些进程!
它定义了一个:
调用自身两次的函数 (代码:) : | :
.它在后台(&
)中完成.完成;
函数定义并:
启动函数后.
因此,每个实例:启动两个新的:依此类推......就像进程的二叉树一样......
用简单的C写的是:
while(1) { fork(); }