login.defs 中缺少 PASS_MIN_LEN
我注意到內部(Ubuntu 20.04 LTS)的密碼老化控制
PASS_MIN_LEN
部分缺少。在文件的末尾有一條說明它已過時,以及其他選項,並且有人需要編輯目錄中的適當文件。/etc/login.defs``/etc/pam.d
################# OBSOLETED BY PAM ############## # # # These options are now handled by PAM. Please # # edit the appropriate file in /etc/pam.d/ to # # enable the equivelants of them. # ###############
但即使
cat /etc/pam.d/* | grep "PASS_MIN_LEN"
我仍然找不到這個選項!那是怎麼回事?
Pluggable Authentication Modules (PAM)是一種(不是真正的)較新的用於身份驗證的通用 API,最初由 Sun Microsystems 在 1995 年提出,一年後在 Linux 生態系統中進行了調整。通過 API 更改,不要期望事物保持相同的名稱(也不要總是映射完全相同)。
來自
man pam_unix
:選項
$$ … $$
minlen=n
設置密碼的最小長度為 n 個字元。預設值為 6。基於 DES 加密的密碼的最大值為 8 個字元。
實施可能因分佈而異。在 Ubuntu 上(如在 Debian 上),
/etc/pam.d/passwd
將/etc/pam.d/common-password
在第一次出現的地方password
包含有用的選項。它可以更改並minlen=X
添加參數。這個後來的文件pam-auth-update
通常在升級時自動重新生成,所以在升級 PAM 相關包後檢查它是否有效。通常它應該:該腳本盡一切努力尊重對
/etc/pam.d/common-*
. 將保留對模組選項列表的本地修改,並且在堆棧的託管部分中添加模組將導致 pam-auth-update 將配置文件視為本地修改,並且不會對配置文件進行進一步更改,除非給出--force
選項。其他選項可能仍會影響結果。例如,如果您設置
minlen=1
,該obscure
選項仍將拒絕單字母密碼作為回文,或拒絕兩字母密碼太簡單等。更改 PAM 時要小心:如果設置錯誤,您可能會將自己鎖定在系統之外。