Пароль на директорию в Apache
Появилась надобность закрыть одну из страничек на 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-сервером.
Усё!