NAME(名称)
htpasswd - 创建和更新用户认证文件
SYNOPSIS(总览)
htpasswd [
-c ] [
-m |
-d |
-s |
-p ]
passwdfileusernamehtpasswd-b [
-c ] [
-m |
-d |
-s |
-p ]
passwdfileusernamepassword DESCRIPTION(描述)
htpasswd 用来创建和更新保存着 HTTP用户基本认证的用户和密码的平面文件. 如果
htpasswd 不能访问文件,那么就不可能写入到输出文件, 也不可能读取文件以更新它, 它会返回错误状态并不作任何修改.
从 httpd Apache web服务器获取的资源只限于由 htpasswd 创建的文件中所列出的用户使用. 该程序只能用于用户名保存在平面文件的情况下. 要使用DBM数据库,请参看 dbmmanage.
htpasswd 的加密密码既可以使用针对Apache修改的MD5版本, 也可以使用系统的crypt()程序. 由 htpasswd 管理的文件可能同时包含两种类型的密码; 一些用户记录可使用MD5加密的密码, 而另一些用户记录可在同一文件中使用通过 crypt()加密的密码.
该手册页只列出了命令行的参数. 要获得关于在 httpd 中配置用户认证的必要指令的详细情况, 可参看Apache手册,它是Apache发布版本的一部分,你也可以在 <URL:http://www.apache.org/>上找到它.
OPTIONS(选项)
- -b
- 使用批处理模式;也即,从命令行上获取密码而不给出提示.该选项在使用时应特别小心, 因为密码是在命令行上清楚可见的.
- -c
- 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
- -m
- 密码使用Apache修改的MD5算法. 使用这种算法加密的密码可以移植到运行Apache 1.3.9或更新版本的任何平台上(Windows,Unix,BeOS,等等). 在Windows和TPF上,该标识是默认的.
- -d
- 密码使用crypt()加密.这是除了Windows和TPF 之外的所有平台上的默认值.尽管这可被所有平台上的 htpasswd 支持,却不被Windows和TPF上的 httpd 服务器所支持.
- -s
- 密码使用SHA加密方法.这种方式移植于Netscape服务器, 使用的是LDAP目录交换格式(ldif).
- -p
- 使用普通文本格式的密码.尽管 htpasswd 可支持在所有平台上创建这种格式的密码, 却只有Windows和TPF上的 httpd 守护程序能够接受普通文本密码.
- passwdfile
- 包含用户名和密码的文件的名字. 如果给定了-c,那么会在其不存在的情况下创建该文件, 或者在其存在的情况下重新写入并删去原有内容.
- username
- 在passwdfile中创建或更新的用户名. 如果username在文件中不存在, 即创建一条记录. 如果已经存在,则修改其密码.
- password
- 文件中加密和存储的普通文本格式的密码. 只用于-b标识.
EXIT STATUS(退出状态)
如果在
passwdfile中用户名和密码添加或更新成功,
htpasswd 返回0状态("true"). 如果在存取文件时遇到某些问题
htpasswd 返回1, 如果在命令行中有语法错误,
htpasswd 返回2, 如果交互式输入的密码与其验证项不匹配,
htpasswd 返回3, 如果操作被中断,
htpasswd 返回4, 如果某个值(用户名,文件名,密码或最终计算出的记录)太长,
htpasswd 返回5, 如果用户名包含无效的字符(参看
RESTRICTIONS部分),
htpasswd 返回6.
EXAMPLES(示例)
htpasswd /usr/local/etc/apache/.htpasswd-users jsmith- 为用户jsmith添加或修改密码. 会给出用户输入密码的提示. 如果在Windows系统上执行, 密码会使用修改的Apache MD5算法加密; 否则,会使用系统的 crypt()程序. 如果文件不存在, htpasswd 会不作任何修改并返回一条错误提示.
htpasswd -c /home/doe/public_html/.htpasswd jane
- 创建一个新的文件并将用户jane记录保存在其中. 会给出用户输入密码的提示. 如果文件存在但不能够读取,或者不能够写入, 那么它不会作修改,而且 htpasswd 会显示一条消息并返回一个错误状态.
htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve
- 使用MD5算法加密取自命令行的密码, 并将其保存到指定的文件中.
SECURITY CONSIDERATIONS(安全考虑)
Web密码文件如由
htpasswd 管理的这些应该
不在Web服务器的URI空间范围之内 -- 也就是说, 浏览器不应该能够获取他们.
建议不要使用-b选项,因为使用该选项时未加密的密码出现在了命令行上.
RESTRICTIONS(限制)
在Windows和MPE平台上,使用
htpasswd 加密的密码的长度限制在255个字符以内. 超出此长度的密码会取前255个字符.
使用的MD5算法是Apache软件特有的; 使用它加密的密码对于其他Web服务器来说是不可用的.
用户名限制在255个字节以内,而且不能包含字符':'. q.SH SEE ALSO(另见) httpd(8) 以及随发布版本所带的support/SHA1下的脚本.