Пользователи и группы Linux для сервера LAMP

Каков наилучший способ настройки сервера LAMP с точки зрения пользователей и групп Linux? Если на одном сервере размещено несколько сайтов, лучше иметь одного пользователя, которому принадлежат все исходные файлы сайта (и загрузки), который находится в той же группе, что и apache, или иметь разных пользователей для каждого сайта (чтобы у каждого сайта свой crontab)? Или что-то совсем другое?

По какой-то причине этот вопрос никогда не затрагивался в книгах по PHP/MySQL/Linux, с которыми я сталкивался.


person DavidWinterbottom    schedule 06.10.2008    source источник


Ответы (5)


На нашей платформе htdocs и т. д. каждого сайта имеют своего пользователя. Это означает, что если один сайт скомпрометирован, остальные должны быть в порядке.

person Kev    schedule 06.10.2008

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

person Jon Topper    schedule 06.10.2008

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

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

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

Кроме того, Xen и VMS могут быть излишними, но не такими простыми в управлении, как Webmin/VirtualMin для 10-100+ учетных записей.

person JasonMichael    schedule 06.10.2008

Лучший выбор — создать VirtualHost для каждого домена, используя Apache с модулем suPHP. Таким образом, каждый сайт будет принадлежать пользователю и работать с разрешения этого пользователя. Webroot каждого сайта должен находиться в домашнем каталоге пользователя, чтобы предотвратить локальную атаку.

Если вы используете одного и того же пользователя для всех веб-сайтов, это означает, что пользователь с веб-сайта A может получить доступ для чтения/записи к файлам веб-сайта B.

person incous    schedule 02.03.2014

Я делал небольшой хостинг в течение нескольких лет, и мой ответ: «Это зависит».

Прежде всего, есть разница между модулем Apache (mod_php). CGI и FastCGI. Хороший список со всеми плюсами и минусами можно найти здесь: Режимы Apache php

Когда дело доходит до безопасности, у всех режимов есть свои плюсы и минусы.

Поскольку мы разместили относительно небольшое количество доменов с умеренным трафиком, я решил остаться с mod_php и использовал конфигурацию vhost.

Я также использовал разных пользователей FTP для каждого корневого каталога виртуального хоста (конечно).

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

person metaphor_set    schedule 20.05.2014