Apache HTTP Server 版本 2.4
htdbm
用於操作 DBM 格式檔案,這些檔案用於儲存透過 mod_authn_dbm
執行 HTTP 使用者的基本驗證時所使用的使用者名稱與密碼。請參閱 dbmmanage
文件,以取得關於這些 DBM 檔案的更多資訊。
htdbm [ -T資料庫類型 ] [ -i ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C 成本 ] [ -t ] [ -v ] 檔案名稱 使用者名稱
htdbm -b [ -T資料庫類型 ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C 成本 ] [ -t ] [ -v ] 檔案名稱 使用者名稱 密碼
htdbm -n [ -i ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C 成本 ] [ -t ] [ -v ] 使用者名稱
htdbm -nb [ -c ] [ -m | -B | -d | -s | -p ] [ -C 成本 ] [ -t ] [ -v ] 使用者名稱 密碼
htdbm -v [ -T資料庫類型 ] [ -i ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C 成本 ] [ -t ] [ -v ] 檔案名稱 使用者名稱
htdbm -vb [ -T資料庫類型 ] [ -c ] [ -m | -B | -d | -s | -p ] [ -C 成本 ] [ -t ] [ -v ] 檔案名稱 使用者名稱 密碼
htdbm -x [ -T資料庫類型 ] 檔案名稱 使用者名稱
htdbm -l [ -T資料庫類型 ]
-b
-i
選項,以了解如何使用腳本。-i
-c
-n
選項結合使用。-n
-c
選項結合使用。-m
-B
-C
-B
(bcrypt 散列)結合使用。它會設定用於 bcrypt 演算法的計算時間(數字越大越安全,但也越慢,預設為:5,可接受的範圍為:4 到 31)。-d
crypt()
散列方式加密密碼。Windows 和 Netware 以外的所有平台的預設設定。雖然 htdbm
可能在所有平台上都支援,但 httpd
伺服器在 Windows 和 Netware 上不支援。根據目前的標準,此演算法不安全。-s
-p
htdbm
支援在所有平台上建立,但 httpd
程式只有在 Windows 和 Netware 上接受純文字密碼。-l
-v
-x
-t
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 檔案類型。如果用於錯誤的格式,它將只會傳回空白,或者可能會建立一個不同名稱的不同 DBM 檔案,或者在最糟的情況下,如果您打算寫入它,它可能會損毀 DBM 檔案。
您通常可以使用大多數 Unix 系統提供的 file
程式,來查看 DBM 檔案的格式。
如果使用者名稱和密碼已成功新增或更新到 DBM 檔案,則 htdbm
傳回狀態碼 0(「true」)。如果 htdbm
在存取檔案時遇到某些問題,則傳回 1
;如果指令列有語法問題,則傳回 2
;如果密碼是互動輸入且驗證輸入不符,則傳回 3
;如果其操作中斷,則傳回 4
;如果值過長(使用者名稱、檔名、密碼或最終計算的記錄),則傳回 5
;如果使用者名稱包含非法字元(請參閱限制部分),則傳回 6
;如果檔案不是有效的 DBM 密碼檔案,則傳回 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
透過 MD5 演算法,加密命令列的密碼 (Pwd4Steve
),並將其儲存在指定的檔案中。
由 htdbm
管理的網路密碼檔案,不應存在於 Web 伺服器的 URI 空間 —— 也就是說,不應使用瀏覽器取得檔案。
不建議使用 -b
選項,因為使用時會在命令列中顯示明文密碼。
使用 crypt()
演算法時,請注意密碼只會使用前 8 個字元來組成。如果提供的密碼較長,多出的字元會被默默地捨棄。
SHA hashing 選項不使用加鹽:對於給定的密碼,只有一個雜湊表示法。crypt()
和 MD5 格式透過在前置隨機加鹽字串,來實作置換表示法,以使針對密碼的字典攻擊更困難。
依現今標準,SHA 和 crypt()
格式並不安全。
在 Windows 平台上,由 htdbm
雜湊的密碼長度,不得超過 255
個字元。更長的密碼會被截斷為 255 個字元。
htdbm
使用的 MD5 演算法,僅適用於 Apache 軟體;使用其雜湊的密碼無法與其他 Web 伺服器一起使用。
使用者名稱上限為 255
位元組,且不得包含 :
字元。