:(){ :|:& };:
.. определяет функцию с именем :
, которая порождает себя (дважды, одна труба в другую) и сама фонов.
С разрывами строк:
:()
{
:|:&
};
:
Переименование функции :
на forkbomb
:
forkbomb()
{
forkbomb | forkbomb &
};
forkbomb
Вы можете предотвратить такие атаки, используя ulimit
, чтобы ограничить количество процессов для пользователя:
$ ulimit -u 50
$ :(){ :|:& };:
-bash: fork: Resource temporarily unavailable
$
Более долгое время вы можете использовать /etc/security/limits.conf
(по крайней мере, у Debian и других):
* hard nproc 50
Конечно, это означает, что вы можете запускать только 50 процессов, вы может хотеть увеличить это в зависимости от того, что делает машина!