Назад | Перейти на главную страницу

Защита от форк-бомбы в OS X - ограничить процессы с помощью ulimit?

Я познакомился с увлекательным миром UNIX около года назад, но после, за неимением лучшего выражения, «столкновение отходов с быстро вращающимися лопастями» сегодня в результате моей работы; Я решил, что пришло время получить совет от профессионалов.

Мне просто было интересно, какие у меня были варианты защиты компьютера под управлением OS X 10.6 от вилочных бомб. Я спрашиваю об этом, потому что (будучи полной грудью, которой я являюсь) я каким-то образом предположил, что, поскольку система не уязвима для стандартной вилки-бомбы BASH, при запуске я получаю следующее:

"-bash: fork: Resource temporarily unavailable"

Что он также не будет уязвим для однострочника, написанного на C. Достаточно сказать, что я запустил его, все остановилось, и, очевидно, я ничего не мог сделать (кроме перезагрузки), потому что я не мог запустить любые новые процессы. Я посмотрел на ulimit, но на данный момент это все немного выше моей головы.

Если я установлю (более низкий?) Лимит процесса для каждого пользователя с помощью ulimit, смогу ли я тогда ssh войти в качестве другого пользователя и каким-то образом убить вилочную бомбу? Как видите, я новичок во всем этом - и, думая об этом, я не уверен, как бы я на самом деле убил это существо.

В любом случае, я хочу знать, как я могу предотвратить повторное появление вилки-бомбы (при запуске той же разветвленной программы на C), я знаю, что это может быть немного излишним для персональной машины, но если я могу сделать систему немного меньше уязвим для того, чтобы пользователь мог вызвать сбой, я бы хотел это сделать. Как минимум для моего душевного спокойствия.

Подводя итог (извините за мою долгую бессвязную бессвязную болтовню, здесь уже поздно, и, как вы, вероятно, можете сказать - я мало публикую в Интернете. Честно говоря, я больше скрываюсь; иначе, пожалуйста, не ешь меня живьем, если я задал глупый вопрос! :-p

Спасибо всем за терпение (и любую помощь, которую вы можете мне оказать),

oms

Взгляни на sysctl чтобы отрегулировать пределы ядра. По какой-то причине на странице руководства MacOS X не упоминается kern.maxprocperuid, так как упомянутые годы назад в Mac OS X Подсказки.

Что касается быстрого избавления от множества процессов, я бы использовал killall.

Mac OS X… «fork: ресурс временно недоступен»

полностью покрывает эту тему, включая внесение необходимых изменений. Я бы подумал, что вы будете защищены от этого, основываясь на разнице между пределами, показанными на

$ sysctl kern.maxproc kern.maxprocperuid

конечно, если ты были пользователем, который запустил вилочную бомбу, не повезло!