Библиотека сайта rus-linux.net
Допустим, нам необходимо ограничить доступ в определенный каталог
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
.