Spec-Zone.ru › Apache HTTP Server

htdbm — управление базами данных паролей DBM

htdbm используется для работы с файлами формата DBM, в которых хранятся имена пользователей и пароли для базовой аутентификации пользователей HTTP через mod_authn_dbm. Дополнительные сведения об этих файлах DBM см. в документации dbmmanage.

Синтаксис

htdbm [ -TDBTYPE ] [ -i ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -t ] [ -v ] filename username
htdbm -b [ -TDBTYPE ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -t ] [ -v ] filename username password
htdbm -n [ -i ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -t ] [ -v ] username
htdbm -nb [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -t ] [ -v ] username password
htdbm -v [ -TDBTYPE ] [ -i ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -t ] [ -v ] filename username
htdbm -vb [ -TDBTYPE ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -t ] [ -v ] filename username password
htdbm -x [ -TDBTYPE ] filename username
htdbm -l [ -TDBTYPE ]

Параметры

-b
Использовать пакетный режим, то есть получать пароль из командной строки, а не запрашивать его. Этот параметр следует использовать с особой осторожностью, поскольку пароль будет виден в командной строке. Для использования в скриптах см. параметр -i.
-i
Считывать пароль из stdin без проверки (для использования в скриптах).
-c
Создать passwdfile. Если passwdfile уже существует, он будет перезаписан и усечён. Этот параметр нельзя сочетать с параметром -n.
-n
Выводить результаты в стандартный вывод, а не обновлять базу данных. Этот параметр меняет синтаксис командной строки, поскольку аргумент passwdfile (обычно первый) опускается. Его нельзя сочетать с параметром -c.
-m
Использовать хеширование MD5 для паролей. В Windows и Netware этот алгоритм используется по умолчанию.
-B
Использовать хеширование bcrypt для паролей. В настоящее время этот алгоритм считается очень надёжным.
-C
Этот флаг разрешён только в сочетании с -B (хеширование bcrypt). Он задаёт время вычислений, используемое алгоритмом bcrypt (чем оно больше, тем выше безопасность, но ниже скорость; по умолчанию: 5, допустимый диапазон: от 4 до 31).
-d
Использовать хеширование crypt() для паролей. По умолчанию используется на всех платформах, кроме Windows и Netware. Хотя этот алгоритм может поддерживаться htdbm на всех платформах, сервер httpd не поддерживает его в Windows и Netware. По современным стандартам этот алгоритм небезопасен.
-s
Использовать хеширование SHA для паролей. Упрощает миграцию на серверы Netscape и с них с использованием формата обмена каталогами LDAP (ldif). По современным стандартам этот алгоритм небезопасен.
-p
Использовать пароли в открытом виде. Хотя htdbm поддерживает их создание на всех платформах, демон httpd принимает пароли в открытом виде только в Windows и Netware.
-l
Вывести в stdout все имена пользователей и комментарии из базы данных.
-v
Проверить имя пользователя и пароль. Программа выведет сообщение, указывающее, верен ли указанный пароль. Если пароль неверен, программа завершится с кодом ошибки 3.
-x
Удалить пользователя. Если имя пользователя существует в указанном файле DBM, оно будет удалено.
-t
Интерпретировать последний параметр как комментарий. Если указан этот параметр, в командную строку можно добавить дополнительную строку; она будет сохранена в поле "Comment" базы данных и связана с указанным именем пользователя.
filename
Имя файла формата DBM. Обычно указывается без расширения .db, .pag или .dir. Если указан -c, файл DBM создаётся, если ещё не существует, или обновляется, если существует.
username
Имя пользователя, запись которого нужно создать или обновить в passwdfile. Если username отсутствует в этом файле, будет добавлена запись. Если оно уже существует, пароль будет изменён.
password
Пароль в открытом виде, который будет хеширован и сохранён в файле DBM. Используется только с флагом -b.
-TDBTYPE
Тип файла DBM (SDBM, GDBM, DB или "default").

Ошибки

Следует учитывать, что существует несколько различных форматов файлов DBM и что в системе, скорее всего, могут быть библиотеки для нескольких форматов. Основные примеры: SDBM, NDBM, GNU GDBM и Berkeley/Sleepycat DB 2/3/4. К сожалению, все эти библиотеки используют разные форматы файлов, поэтому необходимо убедиться, что формат файла, используемый в filename, совпадает с форматом, который ожидает htdbm. В настоящее время htdbm не может определить тип обрабатываемого файла DBM. При использовании файла неправильного формата программа просто ничего не вернёт, может создать другой файл DBM с другим именем или, в худшем случае, повредить файл DBM при попытке записи в него.

Обычно формат файла DBM можно определить с помощью программы file, поставляемой с большинством систем Unix.

Код завершения

htdbm возвращает нулевой код ("true"), если имя пользователя и пароль были успешно добавлены в файл DBM или обновлены в нём. htdbm возвращает 1 при возникновении проблемы с доступом к файлам, 2 при синтаксической ошибке в командной строке, 3 если пароль вводился интерактивно и проверочный ввод не совпал, 4 если выполнение программы было прервано, 5 если значение слишком длинное (имя пользователя, имя файла, пароль или итоговая запись), 6 если имя пользователя содержит недопустимые символы (см. раздел Ограничения) и 7 если файл не является допустимым файлом паролей DBM.

Примеры

htdbm /usr/local/etc/apache/.htdbm-users jsmith

Добавляет или изменяет пароль пользователя jsmith. Программа запросит пароль. При выполнении в Windows пароль будет хеширован с помощью модифицированного алгоритма Apache MD5; в противном случае будет использоваться системная процедура crypt(). Если файл не существует, htdbm ничего не сделает и вернёт ошибку.

htdbm -c /home/doe/public_html/.htdbm jane

Создаёт новый файл и сохраняет в нём запись для пользователя jane. Программа запросит пароль. Если файл существует, но его невозможно прочитать или записать, он не изменяется, а htdbm выводит сообщение и возвращает код ошибки.

htdbm -mb /usr/web/.htdbm-all jones Pwd4Steve

Шифрует пароль из командной строки (Pwd4Steve) с помощью алгоритма MD5 и сохраняет его в указанном файле.

Вопросы безопасности

Файлы паролей для веб-сервера, например управляемые с помощью htdbm, не должны находиться в пространстве URI веб-сервера, то есть не должны быть доступны для получения через браузер.

Не рекомендуется использовать параметр -b, поскольку при его использовании пароль в открытом виде отображается в командной строке.

При использовании алгоритма crypt() следует учитывать, что для формирования пароля используются только первые 8 символов. Если указанный пароль длиннее, остальные символы будут отброшены без предупреждения.

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

Форматы SHA и crypt() по современным стандартам небезопасны.

Ограничения

В Windows длина паролей, хешированных с помощью htdbm, не должна превышать 255 символов. Более длинные пароли будут усечены до 255 символов.

Алгоритм MD5, используемый htdbm, является специфичным для программного обеспечения Apache; пароли, хешированные с его помощью, нельзя использовать с другими веб-серверами.

Длина имён пользователей ограничена 255 байтами; они не должны содержать символ :.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/programs/htdbm.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API