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認證規則。