Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

3. Ограничение доступа

Допустим, нам необходимо ограничить доступ в определенный каталог web-сервера по адресу, например http://www.host2.aa/private/. Мы хотим, чтобы туда могли попасть только пользователи из сети 10.10.11.0/24. Этот web-адрес в нашем случае соответствует физическому каталогу на диске /var/www/www.host2.aa/WebRoot/private/. Тогда нам нужно добавить в конфиг-файл такой блок:

<Directory  /var/www/www.host2.aa/WebRoot/private>
    Order Deny,Allow
    Deny from all
    Allow from    10.10.11.0/24
</Directory>

Теперь, допустим, нам нужно чтобы при входе на web-адрес http://www.host2.aa/admin/, что соответствует физическому каталогу на диске /var/www/www.host2.aa/WebRoot/admin, сервер запрашивал логин и пароль и пропускал туда только пользователей admin и manager с паролями adminpass и manpass соответственно. Тогда сначала добавляем в конфигурационный файл такой блок:

<Directory  /var/www/www.host2.aa/WebRoot/admin>
    AuthName "ADMINSTRATOR AREA"
    AuthType basic
    AuthUserFile "/var/www/www.host2.aa/.htpasswd"
    Require valid-user
    Allow from All
</Directory>

Затем создаем файл с логинами и паролями /var/www/www.host2.aa/.htpasswd. Для этого выполняем следующую команду:

htpasswd -c /var/www/www.host2.aa/.htpasswd admin

и вводим дважды пароль. Ключик -c говорит о том, что мы создаем новый файл паролей. Соответственно, при добавлении новых пользователей этот ключик использовать нельзя. Теперь добавим второго пользователя:

htpasswd /var/www/www.host2.aa/.htpasswd manager

По запросу дважды вводим пароль (в нашем примере manpass). Перегружаем сервер и проверяем, что теперь при входе на http://www.host2.aa/admin/, сервер запросит логин и пароль.

Замечание

Внимание: важно, чтобы файл /var/www/www.host2.aa/.htpasswd имел права на чтение для пользователя apache.