Я запускаю сервер clearOS в моей локальной сети (небольшая компания из 10 разработчиков), мы используем его в качестве сервера разработки, чтобы протестировать нашу работу и показать ее клиентам в процессе тестирования, каждый разработчик имеет уникальное имя пользователя и пароль для доступа к ftp / http / кого-л. проблема в том, что один из разработчиков запускает небезопасный код (допустим, это PHP-код), например, запускает бесконечный цикл! сервер полностью падает для всех, и я не могу определить, кто является неисправным разработчиком !! как это можно решить? заранее спасибо
Информация о моем сервере
Установленные приложения:
Пользователи:
Вы заявили о своей основной проблеме как
когда один из разработчиков запускает небезопасный код (допустим, это php-код), например, запускает бесконечный цикл! сервер полностью вылетает у всех, и я не могу определить, кто является неисправным разработчиком!
Поскольку код разработки всегда может дать сбой или зависнуть, вы эффективно решаете две разные проблемы:
Если вы решите вторую проблему, вам все равно нужно будет решить первую; но если вы решите первый, вам больше не нужно решать второй, поэтому я сосредоточусь на решении первого здесь (кроме того, решать проблемы, не спорить с людьми о плохих вещах, всегда проще и меньше конфронтации).
У вас есть три основных пути на выбор при изоляции действий пользователя друг от друга:
ulimit
, Я просто хочу добавить, что вы должны убедиться, что ваши приложения также используют этих пользователей (вместо общих пользователей-демонов для каждой службы) и что они не хотят запускать процессы с другими учетными записями пользователей. Из-за этого недостатка сегодня этот подход используется редко, за исключением простых вещей, таких как сценарии сборки без инфраструктуры непрерывной доставки.Конечно, всегда возможны комбинации, поскольку подходы работают на разных уровнях. Например, вы можете использовать контейнеры, чтобы у каждого был свой веб-сервер, но разрешить всем пользователям использовать одну и ту же базу данных для экономии ресурсов (доступ к базе данных происходит быстрее, чем с несколькими разными базами данных), ограниченный квотами базы данных.
Как видите, возможностей много, и каждая из них требует значительных усилий, поэтому вам нужно сузить круг:
В качестве превентивной меры вам следует изучить ulimits, если вы хотите установить определенный набор ограничений для пользователей. Вы можете установить ограничения процесса / ЦП / памяти.
Пожалуйста, обратитесь эта ссылка
Другой способ - отслеживать использование ресурсов системой с помощью внешнего инструмента мониторинга (наиболее распространенный пример: nagios / nrpe), который может предупредить вас в случае превышения порогового значения ресурсов.