Библиотека сайта 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.
