Рейтинг:1

Разрешения Apache mod_userdir и php

флаг je

У меня есть настройка со многими пользователями, которые могут разместить свою личную веб-страницу (обслуживаемую apache через mod_userdir), расположенный под public_html в своих домах. поддержка php также включена в apache.

На данный момент у меня есть следующая конфигурация в /etc/apache2/mods-enabled/userdir.conf

<IfModule mod_userdir.c>
        UserDir <home basedir>/*/public_html
        UserDir disabled root

        <Directory <home basedir>/*/public_html>
                AllowOverride FileInfo AuthConfig Limit Indexes Options
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
                <Limit GET POST OPTIONS>
                        Require all granted
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Require all denied
                </LimitExcept>
        </Directory>
</IfModule>

Проблема в том, что, поскольку каждый php-скрипт запускается пользователем www-данные, каждая пользовательская страница имеет права доступа к страницам всех остальных пользователей. public_html. Например, я могу получить обратную оболочку php и проверить контент других пользователей.

я пытался добавить

php_admin_value open_basedir "."

внутри Каталог тег выше. Это предотвращает дыру в безопасности, описанную выше, но на самом деле позволяет php-скрипту спускаться только вниз по иерархии каталогов. Например

<?php
chdir('assets');
echo getcwd();
chdir('..');
echo "<br>";
echo getcwd();
?>

производит

<home>/public_html/активы
<home>/public_html/активы

Проблема решена, если <дом>/public_html путь жестко запрограммирован в open_basedir переменная, но, конечно, мне нужно иметь возможность сделать это для всех пользователей через какую-то переменную. Сохраняет ли apache подстановочный знак (<домашняя база>/*/public_html) соответствует некоторой переменной, к которой я могу получить доступ внутри Каталог тег? Или есть другие лучшие способы сделать это, например, запустить каждую пользовательскую страницу в среде, подобной chroot?

digijay avatar
флаг mx
Вы смотрели [mod_suphp] (https://github.com/lightsey/mod_suphp)?

Ответить или комментировать

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