htdbm - 操作DBM密码数据库
htdbm
用于操作由mod_authn_dbm
提供的HTTP基本认证所使用的保存用户名和密码的DBM数据库文件。参见dbmmanage
文档以获得这些DBM文件的更多信息。
语法
htdbm
[ -TDBTYPE ]
[ -c ]
[ -m |
-d |
-p |
-s ]
[ -t ]
[ -v ]
[ -x ]
filename username
htdbm -b
[ -TDBTYPE ]
[ -c ]
[ -m |
-d |
-p |
-s ]
[ -t ]
[ -v ]
filename username password
htdbm -n
[ -c ]
[ -m |
-d |
-p |
-s ]
[ -t ]
[ -v ]
username
htdbm -nb
[ -c ]
[ -m |
-d |
-p |
-s ]
[ -t ]
[ -v ]
username password
htdbm -v
[ -TDBTYPE ]
[ -c ]
[ -m |
-d |
-p |
-s ]
[ -t ]
[ -v ]
filename username
htdbm -vb
[ -TDBTYPE ]
[ -c ]
[ -m |
-d |
-p |
-s ]
[ -t ]
[ -v ]
filename username password
htdbm -x
[ -TDBTYPE ]
[ -m |
-d |
-p |
-s ]
filename username
htdbm -l
[ -TDBTYPE ]
httpd所支持。
-s
使用 SHA 对密码进行加密。这种方法易于通过LDAP目录交换格式和Netscape server进行交换。
-p
使用明文密码(不加密)。虽然htdbm
在所有平台上都支持这种方法,但是httpd
只能在Windows, Netware, TPF上支持这种方法。
-l
在标准输出上显示每一个用户名以及对应的注释。
-t
将最后一个参数解释为注释。指定这个选项可以在命令行中添加一个额外的字符串,这个字符串可以被存储在数据库中对应用户名的"Comment"字段中。
-v
校验用户名和密码。程序将会显示一个密码是否正确的信息。如果密码不正确程序退出时的错误代码将是"3"。
-x
删除用户。如果指定的用户名存在与数据库中,则删除该用户。
filename
DBM文件的文件名。通常不包含 .db
, .pag
, .dir
后缀。如果同时使用了 -c
选项,若DBM文件已存在则更新它,若不存在则创建它。
username
在passwdfile中添加或更新记录。若username不存在则添加一条记录,若存在则更新其密码。
password
将要被加密存储的明文密码。仅与 -b
一同使用。
-TDBTYPE
DBM文件的类型(SDBM, GDBM, DB, "default")。
-s
-p
htdbm
在所有平台上都支持这种方法,但是httpd
只能在Windows, Netware, TPF上支持这种方法。-l
-t
-v
-x
filename
.db
, .pag
, .dir
后缀。如果同时使用了 -c
选项,若DBM文件已存在则更新它,若不存在则创建它。username
password
-b
一同使用。-TDBTYPE
Bugs
实际上存在有许多不同的DBM文件格式,你的系统中也可能存在不止一种的支持库,常见的有SDBM, NDBM, GNU GDBM, Berkeley/Sleepycat DB 2/3/4 。麻烦的是,所有这些库都使用了不同的文件格式,因而你必须确保filename所采用的格式能够为htdbm
所接受。目前,htdbm
无法自己确定所查找的文件的DBM类型。如果使用了错误的格式,则简单返回nothing ,或者建立一个不同名称的不同的DBM文件,而最坏的情况是,在试图写入这个文件时,可能会破坏该DBM文件。
在大多数Unix系统中,都可以用file
程序来查看DBM文件的格式。
限制)则返回"6
";若指定的文件不能被正确识别则返回"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
将来自命令行的密码(Pwd4Steve
)使用MD5算法加密,并将其存入指定的文件。
限制
在Windows和MPE平台上,用htdbm
加密的密码最大长度是255
字符。超出部分将被截断。
htdbm
使用的MD5加密算法已经被Apache修改过了,仅能够被Apache识别,不能被其它Web服务器识别。
用户最大长度是255
字节,并且不能包含冒号(:
)。