CentOS密碼復雜度配置通過/etc/pam.d/system-auth文件中的pam_cracklib.so模塊來實現。
首先查看/etc/pam.d/system-auth文件

可以看到當前並沒有看到pam_cracklib.so模塊
查找資料發現

pam_pwquality.so是兼容pam_cracklib.so模塊的,所以pam_cracklib.so的選項也適用於pam_pwquality.so

在system-auth文件中 pam_pwquality.so后添加minlen=8 dcredit=-2 ucredit=-1 lcredit=-1 ocredit=-1
參數含義:密碼長度最小為8位,數字出現的最少次數為2次,大寫字母出現最少1次,小寫字母出現最少1次,特殊字符出現最少1次

保存退出后,進行測試密碼復雜度配置是否生效


新建一個test賬戶,使用root賬戶設置test賬戶的密碼為test,密碼修改成功。(證明root賬戶不受pam認證規則的限制)
然后切換到test賬戶設置test賬戶的密碼。這里嘗試設置密碼為Pw39@。

報錯提示大寫字母少於8位,說明minlen=8已經生效。
接下來嘗試設置密碼為Pwqwert@

報錯提示數字少於2位,說明dcredit=-2已經生效。
接下來嘗試設置密碼為pw12qwer@

報錯提示大寫字母少於1位,說明ucredit=-1已經生效。
passwd:Have exhausted maximum number of retries for service(passwd:已經用盡了最多可重試的服務次數),說明retry=3已經生效。
接下來重新設置密碼,嘗試設置密碼為PW12QWER@

報錯提示小寫字母少於1位,說明lcredit=-1已經生效。
接下來嘗試設置密碼為Pw12qwer

報錯提示特殊字符少於1位,說明ocredit=-1已經生效。
限制root用戶
vi etc/pam.d/system-auth
在sysstem-auth文件中pam_pwquality.so行添加enforce_for_root

然后測試是否root被限制,也要遵守密碼復雜度策略
用root賬戶設置test賬戶密碼為Pw12qwer

報錯提示特殊字符少於1位,說明root用戶已經被限制,也要遵守pam認證規則。
