Security

login.defs 中缺少 PASS_MIN_LEN

  • July 3, 2020

我注意到內部(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 時要小心:如果設置錯誤,您可能會將自己鎖定在系統之外。

引用自:https://unix.stackexchange.com/questions/596507