<-
Apache HTTP 服务器 2.4 > 手册页:htdbm

htdbm-操作DBM密码数据库

htdbm用于操作DBM格式的文​​件,该文件用于存储用户名和密码,以便通过进行HTTP用户的基本认证 mod_authn_dbmdbmmanage 有关这些DBM文件的更多信息,请参见文档。

支持Apache!

也可以看看

最佳

概要

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
创建passwdfile。如果passwdfile已经存在,则将其重写并截断。该选项不能与该-n选项组合使用。
-n
在标准输出上显示结果,而不是更新数据库。该选项更改了命令行的语法,因为省略了 passwdfile参数(通常是第一个参数)。不能与-c选项结合使用。
-m
对密码使用MD5加密。在Windows和Netware上,这是默认设置。
-B
对密码使用bcrypt加密。当前,这被认为是非常安全的。
-C
仅与-B(bcrypt加密)结合使用,才允许使用此标志。它设置用于bcrypt算法的计算时间(越高,越安全,但越慢,默认值:5,有效值:4到31)。
-d
crypt()对密码使用加密。Windows和Netware以外的所有平台上的默认设置。尽管可能 htdbm在所有平台上都受支持,但httpdWindows和Netware上的服务器不支持它 。按照当今的标准,该算法是不安全的。
-s
对密码使用SHA加密。使用LDAP目录交换格式(ldif)促进与Netscape服务器之间的迁移。按照当今的标准,该算法是不安全的。
-p
使用纯文本密码。尽管htdbm将在所有平台上支持创建,但该httpd守护程序仅在Windows和Netware上接受纯文本密码。
-l
在stdout上打印数据库中的每个用户名和注释。
-v
验证用户名和密码。程序将打印一条消息,指示提供的密码是否有效。如果密码无效,则程序退出并显示错误代码3。
-x
删除用户。如果用户名存在于指定的DBM文件中,它将被删除。
-t
将最终参数解释为注释。指定此选项后,可以在命令行中附加一个字符串。该字符串将与指定的用户名关联存储在数据库的“注释”字段中。
filename
DBM格式文件的文件名。通常不包括扩展名 .db.pag.dir。如果 -c指定,则创建DBM文件(如果尚不存在),或者将其更新(如果存在)。
username
passwdfile中创建或更新的用户名。如果 该文件中不存在用户名,则会添加一个条目。如果确实存在,则更改密码。
password
要加密并存储在DBM文件中的纯文本密码。仅与-b标志一起使用。
-TDBTYPE
DBM文件的类型(SDBM,GDBM,DB或“默认”)。
最佳

虫子

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

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

最佳

退出状态

htdbm如果用户名和密码已成功添加或更新到DBM文件中,则返回零状态(“ true”)。 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

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

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

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

最佳

安全注意事项

如由管理网络的密码文件htdbm应该 不会是Web服务器的URI空间中, -也就是说,他们不应该是可提取使用的浏览器。

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

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

SHA加密格式不使用盐化:对于给定的密码,只有一个加密的表示形式。在crypt()前面加上一个随机字符串盐,使对密码字典攻击的难度和MD5格式置换表示。

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

最佳

限制条件

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

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

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

可用语言: zh  |  fr  |  TR 

最佳

注释

注意:
这不是“问答”部分。此处放置的评论应指向有关改进文档或服务器的建议,如果实施或被认为无效/偏离主题,我们的主持人可以将其删除。有关如何管理Apache HTTP Server的问题,应直接指向我们的IRC频道#httpd(位于Freenode上),或发送至我们的邮件列表
目前,此页面已禁用评论。