Защита fork-бомбы, не работающая: Объем процессов, не ограниченных

Я просто пришел к пониманию, что моя система не ограничивает объем процессов на пользователя правильно таким образом не препятствование тому, чтобы пользователь делал fork-бомбу и разрушил всю систему:

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: Я действительно не думаю, что предел памяти поражен перед пределом процесса. Эта машина имеет поршень на 8 ГБ, и это использовало только 4% из него в то время, когда я отбросил fork-бомбу.

Править:

Мне удалось воспроизвести это на живом CD. Таким образом, я предполагаю, что это должно быть ошибкой. Это в основном заканчивает тем, что уничтожило все процессы, включая систему критические вещи как X11, SSHD и т.д.

Любой пользователь может разрушить систему.

8
задан 7 February 2017 в 22:53

1 ответ

Оказывается, что /etc/security/limits.conf работает, но нуждается в перезагрузке, прежде чем его интерпретируют. Выйти не достаточно.

Я рекомендую кому-либо ограничить конфигурационный файл, например

user hard nproc 512

Заменить user любым именем пользователя, которое вы хотите ограничить.

Или, лучше:

@group hard nproc 512

Замените group любой группой пользователей, которую вы хотите ограничить.

0
ответ дан 7 February 2017 в 22:53

Другие вопросы по тегам:

Похожие вопросы: