gpt4 book ai didi

linux - Bash 命令 :(){ :|:& };: will spawn processes to kernel death. 你能解释一下语法吗?

转载 作者:IT老高 更新时间:2023-10-28 12:38:26 25 4
gpt4 key购买 nike

我看了this page并且无法理解这是如何工作的。

此命令“以指数方式生成子进程,直到您的盒子锁定”。

但是为什么呢?我不太了解的是冒号。

user@host$ :(){ :|:& };:

最佳答案

:(){ :|:& };:

..定义了一个名为 : 的函数,它会自己生成(两次,一个管道进入另一个),并为自己设置背景。

带换行符:

:()
{
:|:&
};
:

: 函数重命名为 forkbomb:

forkbomb()
{
forkbomb | forkbomb &
};
forkbomb

您可以通过使用 ulimit 限制每个用户的进程数来防止此类攻击:

$ ulimit -u 50
$ :(){ :|:& };:
-bash: fork: Resource temporarily unavailable
$

您可以更永久地使用 /etc/security/limits.conf(至少在 Debian 和其他平台上),例如:

* hard nproc 50

当然这意味着你只能运行 50 个进程,你可能想增加这个取决于机器在做什么!

关于linux - Bash 命令 :(){ :|:& };: will spawn processes to kernel death. 你能解释一下语法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/515844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com