回答:
OK、それで、マイケルハンプトンの提案に従い、pam_cracklib.cのコードを見に行ったところ、pam_cracklibが関数呼び出しを介してPAMから古い(別名、現在の)パスワードを取得しているように見えます(私は、認証のために現在のパスワードを入力しただけです)、次に、古いパスワードと入力した新しいパスワードの間の類似性分析(距離関数)を実行します。
ただし、その履歴にあるすべての古いパスワードに対してこの分析を行うわけではありません。ハッシュとしてのみ保存されるため、それは不可能です。それらについては、それらが同じである場合にのみチェックがあります。だから、私が期待したように、すべてが整然としているように見えますが、今はそれがなぜなのか理解しています...みんなに感謝します。
古いパスワードはプレーンテキストでは保存されません。
代わりに、古いパスワードハッシュは/etc/security/opasswd
PAMによって格納されます。次に、PAM構成で指定された内容に基づいて、パスワードを変更するときに比較を行います。
PAM構成の例:
password required pam_unix.so sha512 remember=12 use_authtok
ここでは、remember
12個の以前のパスワードを記憶させます。
詳細については、pam_cracklibによるLinuxパスワードセキュリティを参照してください。