Apache веб-каталоги В расчете на пользователя в соответствии с собственным идентификатором пользователя вместо www-данных?

Разговор об этой функции http://httpd.apache.org/docs/current/howto/public_html.html

Существует ли путь (КАК?), чтобы иметь Apache берут (setuid) идентификатор каждого "~user", вместо того, чтобы делать все под идентификатором пользователя www-данных?

Здесь существует связанный вопрос: Apache на полномочия пользователя

В том вопросе один ответ на самом деле отговаривает от выполнения, что я спрашиваю:

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

То, что отвечающая сторона указала, что Вы не ДОЛЖНЫ делать этого, кажется, подразумевает, что Вы CAN делаете это. Таким образом, теперь я просто спрашиваю, КАК сделать это, потому что у меня есть очень определенный пример использования, который требует его, но выполнение отдельного экземпляра для каждого идентификатора пользователя является слишком ресурсоемким. Так, есть ли более легкий путь?

1
задан 13 April 2017 в 15:14
2 ответа

Вы можете попробовать Apache ITK MPM . Он работает как традиционная модель предварительной пробки Apache, но назначает для каждого виртуального хоста свой UID. И если вы используете Apache 2.4, вы можете использовать mod_rewrite, чтобы сделать ~/ пути для использования UID этого конкретного homedir в соответствии с инструкциями домашней страницы ITK MPM.

RewriteEngine on
RewriteRule /~([a-z]+)/ - [E=ITKUID:$1]
AssignUserIDExpr %{reqenv:ITKUID}
1
ответ дан 4 December 2019 в 00:20

Да, вы бы включили SuExec.

https://httpd.apache.org/docs/2.4/suexec.html

В частности, раздел, который начинается с использованием suEXEC.

Для удобства процитировано здесь:

Используя suEXEC

Запросы на программы КГИ будут вызывать suEXEC-обертку только в том случае, если они предназначены для виртуального узла, содержащего директиву 'SuexecUserGroup', или если они обрабатываются 'mod_userdir'.

Virtual Hosts: Один из способов использования обёртки suEXEC - это Директива 'SuexecUserGroup' в определениях 'VirtualHost'. Путем установки эта директива для значений, отличных от идентификатора пользователя главного сервера, всех запросы на ресурсы CGI будут выполняться как пользователь и группа определенное для этого "". Если эта директива не указана для '' тогда предполагается пользовательский интерфейс главного сервера.

Пользовательские каталоги: Запросы, которые обрабатываются 'mod_userdir' будут вызывать обертку suEXEC для выполнения CGI-программ под пользовательским именем запрашиваемый пользовательский каталог. Единственное необходимое для этого требование возможность работать для того, чтобы выполнение CGI было включено для пользователя и что сценарий должен соответствовать проверке безопасности, приведенной выше. Смотрите также опцию времени компиляции '--with-suexec-userdir'.

Вам нужно убедиться, что в вашей сборке Apache включена опция времени компиляции '--with-suexec-userdir'.

.
0
ответ дан 4 December 2019 в 00:20

Теги

Похожие вопросы