Что такое профилератор процессов и что с ним делать?
Вчера в сети рассылки попалась статья на zdnet Какие пять команд нельзя выполнять на Linux и почему?, четыре из них были знакомы, а вот на пятой -- профилератор процессов(process proliferator) остановимся, потому что является на мой взгляд диковинкой, но все же.
♨️ Не смотря на то, что ее запись как :(){ :|:& };: , выглядит несколько глупой, но это команда является малоизвестной fork-бомбой для Bash. По-сути она относится к типу атак -- отказ в обслуживании (Denial of Service, DoS), которая будет заполнять таблицу процессов до упора.
📛 Этот упор устанавливается в ограничениях системных настроек (system limit setting), параметром max user processes, значение которого можно получить с помощью команды ulimit -a.
*️⃣ Обычно эта команда показывает все установленные ограничения вместе с числом процессов, который может запускать пользователь в своем сеансе.
*️⃣Для пермоментной установки ограничения запускаемых процессов пользователем можно использовать команду sudo ulimit -u 1000
*️⃣Для фиксированного ограничения запускаемых процессов пользователем обычно прописывают ключевое значение nproc в файле /etc/security/limits.conf :
1️⃣ Для конкретного пользователя
user soft nproc 1000
user hard nproc 1000
2️⃣ Или для всех пользователей
* soft nproc 1000
* hard nproc 1000
Картинка взята с zdnet