Пароль на директорию в Apache

Материал из megapuper
Перейти к: навигация, поиск

Появилась надобность закрыть одну из страничек на web-сервере от лишних глаз. Делать будем при помощи .htaccess

Сначала проверим, что разрешен соответствующий модуль в конфигурации apache в httpd.conf: LoadModule auth_module


Потом редактируем /usr/local/etc/apache/httpd.conf Для директории которую будем закрывать добавляем:

<Directory "/usr/local/www/директория">
AllowOverride AuthConfig
</Directory>


Сохраняем и перечитываем конфиг apachectl graceful Тем самым мы разрешили переопределять конфигурации авторизации для данной директории.


Затем в директории сайта создаём файл .htaccess и пишём туда:

AuthType Basic
AuthName "Enter password"
AuthUserFile /Путь/к/файлу/с/паролями/.htpasswd
AuthGroupFile /dev/null
Require valid-user

В AuthName можно написать свой текст, который выводится наверху окошка при запросе браузером имени пользователя/пароля.
В AuthUserFile прописываем путь к файлу с паролями. Желательно файл с паролями хранить вне пути, доступного через web сервер. Либо можно создать файл .htpasswd в этой же директории.
После создания и модификации этого файла перезапускать сервер не надо, изменения в .htaccess вступают в силу немедленно.


Теперь собственно создаём наш файл паролей. Делаем это с помощью утилитки htpasswd, поставляемой с апачем. Для того, чтоб посмотреть какие пользователи определены — можно просто открыть файл и посмотреть — имена пользователей написаны в начале строки до символа :
Для создания файла применяем команду:

# htpasswd -с .htpasswd имя_пользователя

и вводим пароль пользователя.


Для того, чтоб поменять пароль у уже существующего пользователя достаточно сделать:

# htpasswd .htpasswd имя_пользователя

и тоже ввести новый пароль и подтверждение.


Даём файлам .htaccess и .htpasswd права на чтение web-сервером.

Усё!