Spec-Zone.ru › Apache HTTP Server

htpasswd — Управление файлами пользователей для аутентификации по основе

htpasswd используется для создания и обновления текстовых файлов, используемых для хранения имен пользователей и паролей для аутентификации HTTP-пользователей. Если htpasswd не может получить доступ к файлу, например, не может записать в выходной файл или не может прочитать файл для обновления, он возвращает код ошибки и не производит никаких изменений.

Ресурсы, доступные от сервера Apache HTTP, могут быть ограничены только пользователями, перечисленными в файлах, созданных htpasswd. Эта программа может управлять только именами пользователей и паролями, хранящимися в текстовом файле. Тем не менее, она может шифровать и отображать информацию о паролях для использования в других типах хранилищ данных. Для использования базы данных DBM см. dbmmanage или htdbm.

htpasswd шифрует пароли с использованием алгоритмов bcrypt, модифицированной версии MD5 для Apache, SHA1 или системной функции crypt(). Файлы, управляемые htpasswd, могут содержать смесь различных типов кодировки паролей; некоторые записи пользователей могут иметь пароли, зашифрованные с помощью bcrypt или MD5, в то время как другие в том же файле могут иметь пароли, зашифрованные с помощью crypt().

Эта страница руководства содержит только аргументы командной строки. Подробные сведения о директивах, необходимых для настройки аутентификации пользователей в httpd, см. в руководстве Apache, которое входит в дистрибутив Apache или доступно по адресу http://httpd.apache.org/.

Синопсис

htpasswd [ -c ] [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username
htpasswd -b [ -c ] [ -m | -B | -d | -s | -p ] [ -C cost ] [ -D ] [ -v ] passwdfile username password
htpasswd -n [ -i ] [ -m | -B | -d | -s | -p ] [ -C cost ] username
htpasswd -nb [ -m | -B | -d | -s | -p ] [ -C cost ] username password

Параметры

-b
Использовать пакетный режим; т.е., получить пароль из командной строки, а не запрашивать его. Этот параметр следует использовать с большой осторожностью, так как пароль будет явно виден в командной строке. Для использования в скриптах см. параметр -i. Доступен в версиях 2.4.4 и более поздних.
-i
Считывать пароль из стандартного потока ввода без проверки (для использования в скриптах).
-c
Создать passwdfile. Если passwdfile уже существует, он перезаписывается и обнуляется. Этот параметр нельзя комбинировать с параметром -n.
-n
Отображать результаты в стандартном выводе, а не обновлять файл. Это полезно для генерации записей паролей, приемлемых для Apache, для включения в хранилища данных, отличные от текстовых. Этот параметр изменяет синтаксис командной строки, так как аргумент passwdfile (обычно первый) опускается. Его нельзя комбинировать с параметром -c.
-m
Использовать шифрование MD5 для паролей. Это значение по умолчанию (с версии 2.2.18).
-B
Использовать шифрование bcrypt для паролей. В настоящее время считается очень безопасным.
-C
Этот флаг разрешен только в сочетании с -B (шифрование bcrypt). Он устанавливает время вычислений, используемое алгоритмом bcrypt (чем больше, тем безопаснее, но медленнее, по умолчанию: 5, допустимые значения: от 4 до 17).
-d
Использовать шифрование crypt() для паролей. Не поддерживается сервером httpd на платформах Windows и Netware. Этот алгоритм ограничивает длину пароля 8 символами. Этот алгоритм является небезопасным по современным стандартам. Раньше он был алгоритмом по умолчанию до версии 2.2.17.
-s
Использовать шифрование SHA для паролей. Упрощает миграцию с/на серверы Netscape с использованием формата обмена LDAP-каталогом (ldif). Этот алгоритм является небезопасным по современным стандартам.
-p
Использовать пароли в открытом виде. Хотя htpasswd будет поддерживать создание на всех платформах, демон httpd будет принимать только пароли в открытом виде на Windows и Netware.
-D
Удалить пользователя. Если имя пользователя существует в указанном файле htpasswd, оно будет удалено.
-v
Проверить пароль. Проверить, что указанный пароль соответствует паролю пользователя, хранящемуся в указанном файле htpasswd. Доступен в версиях 2.4.5 и более поздних.
passwdfile
Имя файла, содержащего имя пользователя и пароль. Если -c задан, этот файл создается, если он еще не существует, или перезаписывается и обнуляется, если он существует.
username
Имя пользователя для создания или обновления в passwdfile. Если username не существует в этом файле, добавляется запись. Если он существует, пароль изменяется.
password
Пароль в открытом виде, который должен быть зашифрован и сохранен в файле. Используется только с флагом -b.

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

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

Примеры

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

Добавляет или изменяет пароль для пользователя jsmith. Пользователю будет предложено ввести пароль. Пароль будет зашифрован с использованием модифицированного алгоритма Apache MD5. Если файл не существует, htpasswd ничего не сделает, кроме как вернет код ошибки.

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

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

htpasswd -db /usr/web/.htpasswd-all jones Pwd4Steve

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

Рекомендации по безопасности

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

Эта программа небезопасна как исполняемый файл с привилегиями setuid. Не делайте её исполняемым файлом с привилегиями setuid.

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

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

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

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

Ограничения

В Windows пароли, зашифрованные с помощью htpasswd, ограничены 255 символами. Более длинные пароли будут усечены до 255 символов.

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

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

Стоимость вычисления хеша пароля bcrypt увеличивается с количеством раундов, указанных в параметре -C . Библиотека apr-util в версии 1.6.0 и более поздних поддерживает максимальное количество раундов 17.

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

Spec-Zone.ru

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