Apache HTTP Server 版本2.2
htdbm
用于操作由mod_auth_dbm
提供的HTTP基本認(rèn)證所使用的保存用戶名和密碼的DBM數(shù)據(jù)庫文件。參見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 ]
-b
-c
-n
同時使用。-n
-c
同時使用。-m
-d
crypt()
對密碼進(jìn)行加密。在Windows, Netware, TPF以外的平臺上這是默認(rèn)方法。雖然有可能在所有的平臺上被htdbm
支持,但是在Windows, Netware, TPF上,該方法不能被httpd
所支持。-s
-p
htdbm
在所有平臺上都支持這種方法,但是httpd
只能在Windows, Netware, TPF上支持這種方法。-l
-t
-v
-x
filename
.db
, .pag
, .dir
后綴。如果同時使用了 -c
選項,若DBM文件已存在則更新它,若不存在則創(chuàng)建它。username
password
-b
一同使用。-TDBTYPE
實際上存在有許多不同的DBM文件格式,你的系統(tǒng)中也可能存在不止一種的支持庫,常見的有SDBM, NDBM, GNU GDBM, Berkeley/Sleepycat DB 2/3/4 。麻煩的是,所有這些庫都使用了不同的文件格式,因而你必須確保filename所采用的格式能夠為htdbm
所接受。目前,htdbm
無法自己確定所查找的文件的DBM類型。如果使用了錯誤的格式,則簡單返回nothing ,或者建立一個不同名稱的不同的DBM文件,而最壞的情況是,在試圖寫入這個文件時,可能會破壞該DBM文件。
在大多數(shù)Unix系統(tǒng)中,都可以用file
程序來查看DBM文件的格式。
htdbm
僅在用戶名和密碼被成功存入數(shù)據(jù)庫或成功更新的情況下返回"0
"。若訪問文件發(fā)生錯誤則返回"1
";若命令行語法錯誤則返回"2
";若密碼驗證失敗則返回"3
";若正在進(jìn)行中的操作被打斷則返回"4
";若值(username, filename, password, 計算結(jié)果)長度超標(biāo)則返回"5
";若用戶名包含非法字符(參見限制)則返回"6
";若指定的文件不能被正確識別則返回"7
"。
htdbm /usr/local/etc/apache/.htdbm-users jsmith
添加或修改用戶jsmith
的密碼。密碼將被提示輸入。在Windows平臺上,密碼將使用Apache修改過的MD5算法進(jìn)行加密;在其它平臺上將使用crypt()
進(jìn)行加密。如果指定的文件不存在,htdbm
將只返回一個錯誤代碼,而不做其它任何事。
htdbm -c /home/doe/public_html/.htdbm jane
創(chuàng)建一個新文件并在其中添加一條用戶jane
的記錄。密碼將被提示輸入。如果文件存在但是不能被讀取或?qū)懭,則不會有任何記錄被修改,同時htdbm
將會顯示一個錯誤信息并返回一個錯誤代碼。
htdbm -mb /usr/web/.htdbm-all jones Pwd4Steve
將來自命令行的密碼(Pwd4Steve
)使用MD5算法加密,并將其存入指定的文件。
Web密碼文件(比如由htdbm
管理)不應(yīng)當(dāng)存在于網(wǎng)絡(luò)空間中,即不能被客戶端有機會訪問。
我們反對使用 -b
選項,因為密碼將以明文的形式出現(xiàn)在命令行中。
在Windows和MPE平臺上,用htdbm
加密的密碼最大長度是255
字符。超出部分將被截斷。
htdbm
使用的MD5加密算法已經(jīng)被Apache修改過了,僅能夠被Apache識別,不能被其它Web服務(wù)器識別。
用戶最大長度是255
字節(jié),并且不能包含冒號(:
)。