CentOS7/RHEL7 開始使用pam_pwquality模塊進行密碼複雜度策略的控制管理。pam_pwquality替換了原來Centos6/RHEL6中的pam_cracklib模塊,並向後兼容。
使用pam_pwquality模塊設置密碼複雜度
可以通過兩種方式實現:
直接指定pam_pwquality模塊參數,即在/etc/pam.d/system-auth中的“password requisite pam_pwquality.so”行尾添加具體參數,比如“minlen=16 ucredit=-1 lcredit=-1 ocredit=-1 dcredit=-1”,表示最小密碼長度16位,數字,大小寫字母,特殊字符均至少包含1位。通過修改/etc/security/pwquality.conf參數文件,定義密碼複雜度規則。修改pwquality.conf參數文件有2種方法,可以參考“CentOS7 設置密碼規則” by shaonbean。 (1)直接vi或vim編輯器 ,或者甚至用sed命令,修改/etc/security/pwquality.conf
(2)使用authconfig命令修改,修改後最終會體現在/etc/security/pwquality.conf文件中
使用authconfig修改密碼複雜度策略
centos7如何繼續使用pam_cracklib模塊檢驗密碼複雜度
由於Centos7默認取消了對pam_cracklib模塊的使用,配置文件/etc/pam.d/system-auth中沒有pam_cracklib.so相關的條目。
有同學直接在/etc/pam.d/system-auth文件末尾添加“password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=16 ucredit=-1 lcredit=-1 ocredit=-1 dcredit=-1” ,然後發現實際上密碼複雜度策略並沒有生效。
經測試是因為位置不對,把上面的語句添加在“pam_pwquality.so”所在行的前面,即可使策略生效。如下所示:
centos7如何繼續使用pam_cracklib模塊檢驗密碼複雜度
參考
(1)pam_pwquality(8) - Linux man page
(2)Administering Local Password Policies in CentOS 7
(3)CentOS 7 設置密碼規則