为什么以下命令会杀死系统?

为什么以下命令会杀死系统?

有人能理解下面在 bash 中运行的代码吗?

:(){ :|:& };:

这似乎是forkLinux上的“炸弹”。

答案1

其实破解起来并不难。

这段代码只是定义了一个名为的函数:,该函数在管道中调用其自身的两个实例::|:&。定义后,该函数的实例将启动。

这导致子 shell 进程数量快速增加。未受保护的系统(每个用户没有进程数限制的系统)将受到此类 fork 炸弹的严重影响,因为合法进程的数量很快就会被超越,从而剥夺大部分 CPU 资源。

相关内容