Apache на разрешения пользователя

Итак, я посмотрел несколько ресурсов для Google и вопросы здесь, ни один из них, кажется, не то, что мне нужно.

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

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

Я настраивал Apache для тестирования и обучения, и столкнулся с ситуацией разделения пользователей. Нужно ли использовать Apache для каждого пользователя или достаточно "www-данных"?

Учитывая, что "отдельные" веб-папки находятся в отдельных "домашних" каталогах, я полагаю, это безопасно? Насколько я понимаю, если вы не можете получить доступ к каталогу где-то в пути, что-нибудь позади, что не может быть доступно - это правильно?

Наконец, я заметил, и именно поэтому я спрашиваю об этом, что Wordpress при создании файлов или файлов кэша создает их как пользователя "www-data" и группы "www-data". Это то, что побудило меня спросить, поскольку я предполагаю, что "пользователь" не имеет доступа к этим файлам сейчас?

2 ответа

Решение

Во-первых, пользователь, запускающий apache, должен иметь возможность читать файлы, чтобы показать их клиенту. Когда вы используете пользовательские каталоги, это обычно означает предоставление доступа на запись самим пользователю и доступ на чтение либо конкретно к группе "www-data" (или к любой группе, к которой принадлежит пользователь, работающий с apache), либо ко всем пользователям в сервер. Чтобы не отображать какие-либо файлы за пределами иерархии каталогов пользователя public_html, вы должны использовать файл конфигурации apache, чтобы разрешить использование public_html и его подкаталогов для пользовательских веб-сайтов.

Во-вторых, поскольку вы хотите быть уверены, что пользователь apache не может ничего редактировать (в случае взлома сервера, или если кто-то пишет неисправные скрипты и запускает его как cgi или что-то в этом роде), вы хотите запустить его как пользователь, у которого нет прав на запись в пользовательские каталоги. Этот пользователь по-прежнему должен иметь возможность писать журналы и временные данные, и у него должны быть свои собственные каталоги, в которых он это делает.

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

Мой совет - использовать apache-itk patch. Вы можете использовать домашний каталог пользователя для каждого сайта и запускать apache с разными разрешениями пользователя - это очень безопасно для хостинга нескольких сайтов.

Другие вопросы по тегам