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

htpasswd-管理用户文件以进行基本身份验证

htpasswd用于创建和更新用于存储HTTP用户基本身份验证的用户名和密码的平面文件。如果 htpasswd无法访问文件,例如无法写入输出文件或无法读取文件以更新文件,则它将返回错误状态并且不进行任何更改。

可将Apache HTTP服务器上可用的资源限制为仅由所创建的文件中列出的用户htpasswd。该程序只能管理存储在平面文件中的用户名和密码。但是,它可以加密和显示密码信息,以供其他类型的数据存储使用。要使用DBM数据库,请参见dbmmanagehtdbm

htpasswd使用bcrypt(为Apache,SHA1或系统crypt()例程修改的MD5版本)对密码进行加密 。由管理的文件htpasswd可能包含多种不同编码类型的密码;某些用户记录可能具有bcrypt或MD5加密的密码,而同一文件中的其他用户记录可能具有的加密密码crypt()

本手册页仅列出命令行参数。有关配置用户身份验证所必需的指令的详细信息, httpd请参阅Apache手册,该手册是Apache发行版的一部分,或者可以在http://httpd.apache.org/上找到。

支持Apache!

也可以看看

最佳

概要

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()对密码使用加密。httpdWindows和Netware上的服务器不支持此功能。此算法将密码长度限制为8个字符。按照当今的标准,该算法是不安全的。在2.2.17版之前,它一直是默认算法。
-s
对密码使用SHA加密。使用LDAP目录交换格式(ldif)促进与Netscape服务器之间的迁移。按照当今的标准,该算法是不安全的。
-p
使用纯文本密码。尽管htpasswd将在所有平台上支持创建,但该httpd守护程序仅在Windows和Netware上接受纯文本密码。
-D
删除用户。如果用户名存在于指定的htpasswd文件中,它将被删除。
-v
验证密码。验证给定的密码与存储在指定的htpasswd文件中的用户的密码匹配。在2.4.5及更高版本中可用。
passwdfile
包含用户名和密码的文件名。如果 -c给出,则创建该文件(如果尚不存在),或者重写并截断(如果存在)。
username
passwdfile中创建或更新的用户名。如果 该文件中不存在用户名,则会添加一个条目。如果确实存在,则更改密码。
password
要加密并存储在文件中的纯文本密码。仅与-b标志一起使用。
最佳

退出状态

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

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

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

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

最佳

安全注意事项

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

该程序作为setuid可执行文件并不安全。千万不能让它的setuid。

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

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

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

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

最佳

限制条件

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

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

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

计算bcrypt密码哈希值的成本随着该-C选项指定的回合数而增加。该apr-util库在版本1.6.0及更高版本中强制执行最大回合数17次。

可用语言: zh  |  fr  |  ko  |  TR 

最佳

注释

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