Apache HTTP Server 版本 2.4
htdbm
用于操作 DBM 格式文件,这些文件用于存储用户名和密码,以便通过 mod_authn_dbm
对 HTTP 用户进行基本身份验证。有关这些 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
-c
-n
选项结合使用。-n
-c
选项结合使用。-m
-B
-C
-B
(bcrypt 哈希)结合使用。它设置了 bcrypt 算法使用的计算时间(越高越安全但越慢,默认值:5,有效值:4 到 31)。-d
crypt()
哈希。所有平台(Windows 和 Netware 除外)的默认值。虽然 htdbm
可能在所有平台上都支持它,但 httpd
服务器在 Windows 和 Netware 上不支持它。根据今天的标准,此算法不安全。-s
-p
htdbm
将支持在所有平台上创建,但 httpd
守护进程只会在 Windows 和 Netware 上接受明文密码。-l
-v
-x
-t
filename
.db
、.pag
或 .dir
。如果给出 -c
,则如果 DBM 文件不存在,则创建它,如果存在,则更新它。username
password
-b
标志一起使用。-TDBTYPE
应该注意,存在许多不同的 DBM 文件格式,并且很有可能,您的系统上可能存在不止一个格式的库。三个主要示例是 SDBM、NDBM、GNU GDBM 和 Berkeley/Sleepycat DB 2/3/4。不幸的是,所有这些库都使用不同的文件格式,您必须确保 filename 使用的文件格式与 htdbm
预期看到的格式相同。htdbm
目前无法确定它正在查看的 DBM 文件的类型。如果针对错误的格式使用,它只会返回空值,或者可能会创建一个具有不同名称的不同 DBM 文件,或者在最坏的情况下,如果尝试写入它,它可能会损坏 DBM 文件。
通常可以使用大多数 Unix 系统提供的 file
程序来查看 DBM 文件的格式。
如果用户名和密码已成功添加到 DBM 文件或在 DBM 文件中更新,则 htdbm
返回零状态(“true”)。如果 htdbm
在访问文件时遇到问题,则返回 1
;如果命令行存在语法问题,则返回 2
;如果密码是交互式输入的,并且验证条目不匹配,则返回 3
;如果其操作被中断,则返回 4
;如果值太长(用户名、文件名、密码或最终计算的记录),则返回 5
;如果用户名包含非法字符(请参阅限制部分),则返回 6
;如果文件不是有效的 DBM 密码文件,则返回 7
。
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
使用 MD5 算法加密命令行中的密码(Pwd4Steve
),并将其存储在指定的文件中。
Web 密码文件(如 htdbm
管理的密码文件)不应位于 Web 服务器的 URI 空间内 - 也就是说,它们不应通过浏览器获取。
不建议使用 -b
选项,因为使用它时,明文密码会出现在命令行上。
使用 crypt()
算法时,请注意,只有密码的前 8 个字符用于形成密码。如果提供的密码更长,则多余的字符将被静默丢弃。
SHA 哈希选项不使用加盐:对于给定的密码,只有一个哈希表示。crypt()
和 MD5 格式通过在前面添加一个随机盐字符串来对表示进行排列,以使针对密码的字典攻击更加困难。
SHA 和 crypt()
格式根据今天的标准是不安全的。
在 Windows 平台上,使用 htdbm
哈希的密码长度限制为不超过 255
个字符。更长的密码将被截断为 255 个字符。
htdbm
使用的 MD5 算法特定于 Apache 软件;使用它哈希的密码不能与其他 Web 服务器一起使用。
用户名限制为 255
个字节,并且不能包含字符 :
。