7.5.2. Файлы паролей

7.5.2. Файлы паролей

Теперь нам предстоит узнать, как создаются файлы паролей и как ими управлять. Директива AuthUserFile для хранения информации об авторизации использует простой текстовый файл, в котором содержатся строки следующего вида:

flenov:{SHA}lZZEBt.Py4/gdHsyztjUEWb0d90E=

В этой записи два параметра, разделенных двоеточием. Сначала указано имя пользователя, а после разделителя — зашифрованный по алгоритму MD5 пароль. Формировать такой файл вручную сложно и не имеет смысла, поэтому для облегчения жизни администраторов есть утилита htpasswd. С помощью этой программы создаются и обновляются имена и пароли для базовой аутентификации Web-сервером HTTP-пользователей.

Удобство программы состоит в том, что она может шифровать пароли и по алгоритму MD5, и с помощью системной функции crypt(). В одном файле могут находиться записи с паролями обоих типов.

Если вы храните имена и пароли в формате базы данных DBM (для указания этого в файле .htaccess используется директива AuthDBMUserFile), то для управления БД нужно применять команду dbmmanage.

Давайте рассмотрим, как пользоваться программой htpasswd. Общий вид вызова команды выглядит следующим образом:

htpasswd параметры файл имя пароль

Пароль и имя файла являются необязательными, и их наличие зависит от указанных опций. Давайте посмотрим основные ключи, которые нам доступны:

? -c — создать новый файл. Если указанный файл уже существует, то он перезаписывается, и старое содержимое теряется. Пример использования команды:

htpasswd -c .htaccess robert

После выполнения этой директивы перед вами появится приглашение ввести пароль для нового пользователя robert и подтвердить его. В результате будет создан файл .htaccess, в котором будет одна запись для пользователя robert с указанным вами паролем;

? -m — использовать модифицированный Apache алгоритм MD5 для паролей. Это позволит переносить созданный файл на любую другую платформу (Windows, Unix, BeOS и т.д.), где работает Web-сервер Apache. Такой ключ удобен, если у вас разнородная сеть, и один файл с паролями используется на разных серверах;

? -d — для шифрования будет применяться системная функция crypt();

? -s — применить SHA-шифрование (на базе алгоритма хэширования), которое используется на платформе Netscape;

? -р — не шифровать пароли. Я не рекомендую устанавливать этот флаг, потому что он небезопасен;

? -n — не вносить никаких изменений, а только вывести результат на экран.

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

htpasswd .htaccess Flenov

У команды htpasswd есть два ограничения: в имени пользователя не должно быть символа двоеточия, и пароль не может превышать 255 символов. Оба условия достаточно демократичны и с ними можно смириться. Из моих знакомых такой длинный пароль пока еще никто не захотел устанавливать, а задавать имя пользователя с двоеточием редко кому приходит на ум.

Данный текст является ознакомительным фрагментом.