htdbm-操作 DBM 密码数据库

htdbm用于处理 DBM 格式文件,该文件用于存储通过mod_authn_dbm进行 HTTP 用户基本身份验证的用户名和密码。有关这些 DBM 文件的更多信息,请参见dbmmanage文档。

Synopsis

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 ]

Options

Bugs

应该意识到,存在多种不同的 DBM 文件格式,并且很可能在您的系统上存在一种以上格式的库。三个主要示例是 SDBM,NDBM,GNU GDBM 和 Berkeley/Sleepycat DB 2/3/4.不幸的是,所有这些库都使用不同的文件格式,并且您必须确保 filename 所使用的文件格式与htdbm期望的格式相同。 htdbm当前无法确定正在查看的 DBM 文件类型。如果针对错误的格式使用它,则只会返回任何内容,或者会创建具有不同名称的其他 DBM 文件,或者在最坏的情况下,如果您尝试写入 DBM 文件,可能会损坏该 DBM 文件。

通常,可以使用大多数 Unix 系统提供的file程序来查看 DBM 文件采用的格式。

Exit Status

如果用户名和密码已成功添加或更新到 DBM 文件中,则htdbm返回零状态(“ true”)。 htdbm如果在访问文件时遇到问题,则返回12如果命令行存在语法问题,则返回2;如果以交互方式 Importing 密码并且验证项不匹配,则返回3;如果其操作被中断,则返回4;如果值是5太长(用户名,文件名,密码或最终计算的记录);如果用户名包含非法字符(请参见Restrictions section),则为6;如果该文件不是有效的 DBM 密码文件,则为7

Examples

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

添加或修改用户jsmith的密码。提示用户 Importing 密码。如果在 Windows 系统上执行,则将使用修改后的 Apache MD5 算法对密码进行加密;否则,将使用系统的crypt()例程。如果该文件不存在,则htdbm将不执行任何操作,除非返回错误。

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

创建一个新文件并在其中存储用户jane的记录。提示用户 Importing 密码。如果文件存在且无法读取或写入,则不会更改该文件,并且htdbm将显示一条消息并返回错误状态。

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

使用 MD5 算法从命令行(Pwd4Steve)加密密码,并将其存储在指定的文件中。

Security Considerations

Web 密码文件(例如,由htdbmManagement 的 Web 密码文件)不应位于 Web 服务器的 URI 空间内-也就是说,它们不应使用浏览器来获取。

不建议使用-b选项,因为使用该选项时,未加密的密码会出现在命令行中。

使用crypt()算法时,请注意,仅使用密码的前 8 个字符来构成密码。如果提供的密码更长,多余的字符将被静默丢弃。

SHA 加密格式不使用盐化:对于给定的密码,只有一个加密的表示形式。 crypt()和 MD5 格式通过在随机盐字符串前添加前缀来表示,从而使针对密码的字典攻击更加困难。

按当今的标准,SHA 和crypt()格式是不安全的。

Restrictions

在 Windows 平台上,使用htdbm加密的密码的长度不得超过255个字符。较长的密码将被截断为 255 个字符。

htdbm使用的 MD5 算法特定于 Apache 软件;使用它加密的密码将无法在其他 Web 服务器上使用。

用户名限制为255个字节,并且不能包含字符:

首页