.htpasswd — файл, содержащий пароли для доступа к ресурсу у веб-сервера Apache. Метод авторизации с использованием такого файла носит название базового (англ. basic authentication). Некоторые другие веб-серверы, например, nginx[1], также могут работать с этим файлом.

Название начинается с точки, так как точка в Unix-подобных операционных системах указывает на атрибут «скрытый». Кроме того, Apache не отдаёт по запросу файлы, имя которых начинается с «.ht», что позволяет размещать файл паролей внутри каталогов, доступных анонимным пользователям.

Формат файла

править

Файл состоит из строк, каждая из которых соответствует паре логин/хеш пароля. Логин отделяется от хеша двоеточием. Пример содержимого файла .htpasswd.

gygtest:eCcls0kn3MEXs

Вместо пароля в файле сохраняется хеш, рассчитанный одним из следующих способов:

  • системная функция crypt;
  • bcrypt;
  • алгоритм MD5 (модифицированный в проекте Apache);
  • SHA.

Функция crypt используется по умолчанию для всех операционных систем за исключением MS Windows и Transaction Processing Facility. Помимо перечисленных, есть ещё один вариант — когда пароль хранится в виде открытого текста и никак не защищается.

Для генерации данных для .htpasswd используется утилита htpasswd.

Файл предусматривает только ограничение на доступ на чтение, если при доступе к веб-страницам производится запись, то возможность записи контролируется правами на файл в файловой системе.

Утилита htpasswd

править

Для работы с файлом паролей служит утилита htpasswd, обычно входящая в состав дистрибутива веб-сервера Apache. Посредством неё производится создание файлов паролей, а также добавление новых записей, либо модификация существующих.

Ниже приведена строка для добавления нового пользователя ivan в уже существующий файл с именем .htpasswd. Если нужно создать новый файл, то добавьте ключ -c.

htpasswd /usr/local/www/data/.htpasswd ivan

См. также

править

Примечания

править
  1. Описание модуля ngx_http_auth_basic_module. Дата обращения: 5 ноября 2008. Архивировано 17 октября 2008 года.
  NODES