©
本文档使用
php.cn手册 发布
dbmmanage
建立和更新存储用户名和密码的DBM格式的文件,以用于mod_authn_dbm
对HTTP用户进行基本认证。Apache HTTP服务器上的有效资源可以被限制为仅允许由dbmmanage
建立的文件中的用户所访问。此程序仅用于用户名是存储在一个DBM文件中的情况下,如果使用文本数据库,请参见htpasswd
。
本手册页仅列出命令行参数,配置用户认证的相关信息请参见认证、授权、访问控制
文档。
dbmmanage [ encoding ]
filename add|adduser|check|delete|update
username
[ encpasswd
[ group[,group...]
[ comment ] ] ]
dbmmanage filename
view [ username ]
dbmmanage filename import
filename
.db
, .pag
, .dir
后缀。username
:
)。encpasswd
update
和add
命令。使用一个连字符(-
)可以显示输入密码的提示,然后输入。另外,在用于update
命令时,使用一个句号(.
)可以保持原有密码不变。group
:
)。如果不希望指定该用户所属的组,可以使用一个连字符(-
),但是需要填写comment项。另外,在用于update
命令时,使用一个句号(.
)可以保持原来所属的组不变。comment
-d
-m
-s
-p
add
dbmmanage passwords.dat add rbowen foKntnEF3KSXA
adduser
dbmmanage passwords.dat adduser krietz
check
dbmmanage passwords.dat check rbowen
delete
dbmmanage passwords.dat delete rbowen
import
STDIN
读取 username:password
的信息(每行一对),然后增加到filename中。其中的密码必须是已加密的。update
adduser
命令,但是它可以确认username已经存在于filename中。
dbmmanage passwords.dat update rbowen
view
dbmmanage passwords.dat view
注意,实际上存在有许多不同的DBM文件格式,你的系统中也可能存在不止一种的支持库,常见的有SDBM, NDBM, GDBM, Berkeley DB 2 。麻烦的是,所有这些库都使用了不同的文件格式,因而你必须确保filename所采用的格式能够为dbmmanage
所接受。目前,dbmmanage
无法自己确定所查找的文件的DBM类型。如果使用了错误的格式,则简单返回nothing ,或者建立一个不同名称的不同的DBM文件,而最坏的情况是,在试图写入这个文件时,可能会破坏该DBM文件。
dbmmanage
有一个DBM格式参数选择列表,在程序前部由 @AnyDBM::ISA
数组定义。由于我们更喜欢 Berkeley DB 2 格式,dbmmanage
查找系统库的顺序是:Berkeley DB 2, NDBM, GDBM, SDBM 。dbmmanage
会使用第一个找到的库来处理所有的DBM文件操作。此顺序与perl中标准的 @AnyDBM::ISA
的顺序略微不同,所以,如果要使用任何其他工具来管理DBM文件,则必须确保该工具是按此顺序处理的。在用其他语言比如C的程序来处理这些文件时,也要考虑这一点。
在大多数Unix系统中,都可以用file
程序来查看DBM文件的格式。