©
Ce document utiliseManuel du site Web PHP chinoisLibérer
htdbm用于操作由mod_authn_dbm提供的HTTP基本认证所使用的保存用户名和密码的DBM数据库文件。参见dbmmanage文档以获得这些DBM文件的更多信息。
htdbm[ -TDBTYPE] [ -c] [ -m| -d| -p| -s] [ -t] [ -v] [ -x]filenameusername
htdbm-b[ -TDBTYPE] [ -c] [ -m| -d| -p| -s] [ -t] [ -v]filenameusernamepassword
htdbm-n[ -c] [ -m| -d| -p| -s] [ -t] [ -v]username
htdbm-nb[ -c] [ -m| -d| -p| -s] [ -t] [ -v]usernamepassword
htdbm-v[ -TDBTYPE] [ -c] [ -m| -d| -p| -s] [ -t] [ -v]filenameusername
htdbm-vb[ -TDBTYPE] [ -c] [ -m| -d| -p| -s] [ -t] [ -v]filenameusernamepassword
htdbm-x[ -TDBTYPE] [ -m| -d| -p| -s]filenameusername
htdbm-l[ -TDBTYPE]
-b
-c
-n同时使用。
-n
-c同时使用。
-m
-d
crypt()对密码进行加密。在Windows, Netware, TPF以外的平台上这是默认方法。虽然有可能在所有的平台上被
htdbm支持,但是在Windows, Netware, TPF上,该方法不能被
httpd所支持。
-s
-p
htdbm在所有平台上都支持这种方法,但是
httpd只能在Windows, Netware, TPF上支持这种方法。
-l
-t
-v
-x
filename
.db,
.pag,
.dir后缀。如果同时使用了
-c选项,若DBM文件已存在则更新它,若不存在则创建它。
username
password
-b一同使用。
-TDBTYPE
实际上存在有许多不同的DBM文件格式,你的系统中也可能存在不止一种的支持库,常见的有SDBM, NDBM, GNU GDBM, Berkeley/Sleepycat DB 2/3/4 。麻烦的是,所有这些库都使用了不同的文件格式,因而你必须确保filename所采用的格式能够为htdbm所接受。目前,htdbm无法自己确定所查找的文件的DBM类型。如果使用了错误的格式,则简单返回nothing ,或者建立一个不同名称的不同的DBM文件,而最坏的情况是,在试图写入这个文件时,可能会破坏该DBM文件。
在大多数Unix系统中,都可以用file程序来查看DBM文件的格式。
htdbm仅在用户名和密码被成功存入数据库或成功更新的情况下返回"0"。若访问文件发生错误则返回"1";若命令行语法错误则返回"2";若密码验证失败则返回"3";若正在进行中的操作被打断则返回"4";若值(username, filename, password, 计算结果)长度超标则返回"5";若用户名包含非法字符(参见限制)则返回"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字节,并且不能包含冒号(:)。