Я только понял, что моя система не ограничивает количество процессов на пользователя должным образом, не препятствуя тому, чтобы пользователь делал вилку-бомбы и разбивал всю систему:
user@thebe:~$ cat /etc/security/limits.conf | grep user
user hard nproc 512
user@thebe:~$ ulimit -u
1024
user@thebe:~$ :(){ :|:& };:
[1] 2559
user@thebe:~$ ht-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
-bash: fork: Cannot allocate memory
...
Connection to thebe closed by remote host.
ошибка или почему она игнорирует предел в limits.conf и почему не применяет предел, который ulimit -n утверждает, что это?
PS: Я действительно не думаю, что предел памяти поражен раньше предел процесса.
EDIT:
Мне удалось воспроизвести это на живом компакт-диске. Поэтому я предполагаю, что это ошибка. Это в конечном итоге убивает все процессы, в том числе критические вещи, такие как X11, SSHD и т. Д.
Любой пользователь может сбой системы.