Пункт 71. Страница руководства: htdbm
htdbm
используется для управления файлами формата DBM, используемыми для хранения имен пользователей и паролей для базовой аутентификации пользователей HTTP через
mod_authn_dbm
. См. dbmmanage
документацию для получения дополнительной информации об этих файлах DBM.
Синопсис
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
- Считайте пароль со стандартного ввода без проверки (для использования скрипта).
-
-c
- Создайте файл паролей . Если файл passwd уже существует, он перезаписывается и усекается. Эта опция не может быть объединена с
-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
- Распечатайте каждое из имен пользователей и комментариев из базы данных на стандартный вывод.
-
-v
- Проверьте имя пользователя и пароль. Программа напечатает сообщение о том, действителен ли предоставленный пароль. Если пароль недействителен, программа завершает работу с кодом ошибки 3.
-
-x
- Удалить пользователя. Если имя пользователя существует в указанном файле DBM, оно будет удалено.
-
-t
- Интерпретируйте последний параметр как комментарий. Если указан этот параметр, к командной строке может быть добавлена дополнительная строка; эта строка будет храниться в поле «Комментарий» базы данных, связанной с указанным именем пользователя.
-
filename
- Имя файла формата DBM. Обычно без расширения
.db
, .pag
или .dir
. Если
-c
указано, файл DBM создается, если он еще не существует, или обновляется, если он существует.
-
username
- Имя пользователя для создания или обновления в файле passwd . Если
имя пользователя не существует в этом файле, добавляется запись. Если он существует, пароль меняется.
-
password
- Открытый текстовый пароль, который будет зашифрован и сохранен в файле DBM. Используется только с
-b
флагом.
-
-TDBTYPE
- Тип файла DBM (SDBM, GDBM, DB или «по умолчанию»).
Ошибки
Следует знать, что существует несколько различных форматов файлов DBM, и, по всей вероятности, в вашей системе могут существовать библиотеки для более чем одного формата. Тремя основными примерами являются SDBM, NDBM, GNU GDBM и Berkeley/Sleepycat DB 2/3/4. К сожалению, все эти библиотеки используют разные форматы файлов, и вы должны убедиться, что формат файла, используемый именем файла , является тем же форматом, который
htdbm
вы ожидаете увидеть. htdbm
в настоящее время не имеет возможности определить, какой тип файла DBM он просматривает. При использовании против неправильного формата просто ничего не вернет, или может создать другой файл DBM с другим именем, или, в худшем случае, он может повредить файл DBM, если вы пытались записать в него.
Обычно можно использовать file
программу, поставляемую с большинством систем Unix, чтобы увидеть, в каком формате находится файл DBM.
Выход из состояния
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
байтами и не могут включать символ :
.