Как остановить и обнаружить вилку

#include <stdlib.h> #include <unistd.h> int main() { while(1) fork(); } 

Это код для вилочной бомбы.

В нашем колледже мы подключаемся через telnet, т.е. протокол обслуживания клиентов. К серверу подключено около 100 систем. Внезапно мы увидели, что сервер стал медленным, и через некоторое время он разбился. Я узнал, что кто-то применил вилку.

  • В чем разница между 64-битными и 32-разрядными операционными системами?
  • Windows 10 Lenovo pc столкнулся с голубым экраном, и перезагрузка не удалась на igdkmd64 sys
  • Загрузка с USB с биографией UEFI для установки Windows 8.1
  • Как сделать настройки VIM зависящими от компьютера в .vimrc?
  • Разница между программами, скомпилированными для разных ОС
  • Как определить ОС удаленного компьютера?
  • Как мы можем определить, в какой системе реализована вилка? И как мы можем остановить это?

    Один из способов – ограничить максимальное количество процессов, которыми может владеть один пользователь. Есть ли способ остановить его и узнать, из какой системы он был реализован?

  • Была ли Windows 95 операционной системой?
  • USB не загружается при попытке установить Linux на моем Asus EeeBook X205TA
  • Что происходит, если вы устанавливаете> 4 ГБ ОЗУ на компьютер с 32-разрядной ОС?
  • Может ли оконная привязка программным образом вращаться, когда монитор поворачивается на портрет?
  • Windows 7: Должен ли я устанавливать 64-битную или 32-битную версию? (X64 vs x86)
  • Какие версии дистрибутивов C ++ можно удалить?
  • 2 Solutions collect form web for “Как остановить и обнаружить вилку”

    Один из способов – ограничить количество процессов, которыми может управлять пользователь.

    Просто войдите как пользователь root и отредактируйте этот файл, чтобы добавить пользователей и настроить их ограничение.

     # vi /etc/security/limits.conf 

    Добавьте эту строку в файл

     john hard nproc 10 

    Теперь пользователь john может создать только 10 процессов.

    Чтобы остановить запущенную вилку, вы можете использовать killall <name> чтобы убить все процессы бомбы. Однако, поскольку вилочная бомба обычно приводит к невероятно высокой нагрузке на систему, вы, возможно, не сможете использовать SSH или выполнить ее. Поэтому может потребоваться перезагрузка или, по крайней мере, намного быстрее.

    Если у каждого пользователя есть своя учетная запись в системе, вы можете просто проверить домашний каталог каждого пользователя и выполнить поиск исполняемого файла. Скорее всего, он также загрузил исходный код, поэтому найти его не должно быть слишком сложно. Если это была общая учетная запись для всех студентов, вам не повезло. Особенно после завершения сеанса telnet или ssh пользователя у вас нет шансов узнать, кто его запустил.

    Однако вместо того, чтобы наказать пользователя, который взорвал эту вилку, вам лучше исправить конфигурацию системы, чтобы обезоружить вилочные бомбы. Вы можете установить лимиты процесса для каждого пользователя с помощью /etc/security/limits.conf и, таким образом, предотвратить /etc/security/limits.conf вилочной бомбы из-под контроля – например, всего за 50 процессов /etc/security/limits.conf вилка не наносит большого ущерба.

    Давайте будем гением компьютера.