1. 程式人生 > >Linux下的密碼複雜程度設定

Linux下的密碼複雜程度設定

在linux,設定密碼複雜度的方法有幾個
1. 一個是在/etc/login.defs檔案,裡面幾個選項
PASS_MAX_DAYS   90  #密碼最長過期天數
PASS_MIN_DAYS   80  #密碼最小過期天數
PASS_MIN_LEN    10  #密碼最小長度
PASS_WARN_AGE   7   #密碼過期警告天數
2. 另外一個方法是,修改/etc/pam.d/system-auth檔案
找到 password requisite pam_cracklib.so這麼一行替換成如下:
password  requisite pam_cracklib.so retry=5  difok=3 minlen=10 ucredit=-1 lcredit=-3 dcredit=-3 dictpath=/usr/share/cracklib/pw_dict

引數含義:
嘗試次數:5    
最少不同字元:3       
最小密碼長度:10          
最少大寫字母:1       
最少小寫字母:3        
最少數字:3        
密碼字典:/usr/share/cracklib/pw_dict

這樣設定好,你可以做一下測試,不過需要先退出root,因為root使用者並不會受這些限制,它可以設定任意的密碼。

pam_cracklib.so
pam_cracklib.so中有很多引數可以選擇,具體配置如下:
debug : 此選為記錄Syslog日誌。
type=safe : 輸入新密碼的時候給予的提示。
retry=N : 改變輸入密碼的次數,預設值是1。就是說,如果使用者輸入的密碼強度不夠就退出。可以使用這個選項設定輸入的次數,以免一切都從頭再來。
difok=N : 預設值為8。這個引數設定允許的新、舊密碼相同字元的個數。
difignore=N : 多少個字元的密碼應收到difok將被忽略。預設為23
minlen=N : 新的最低可接受的大小密碼。除了在新密碼的字元數。此引數的預設值是9,它是一個老式的UNIX密碼的字元相同型別的所有好,但可能過低,利用一個MD5的系統增加安全性。
dcredit=N : 限制新密碼中至少有多少個數字。
ucredit=N : 限制新密碼中至少有多少個大寫字元。
lcredit=N : 限制新密碼中至少有多少個小寫字元。
ocredit=N : 限制新密碼中至少有多少個其它的字元。此引數用於強制模組不提示使用者的新密碼,但以前使用的堆疊模組提供的密碼之一。
dictpath=/data/dict :密碼字典,這個是驗證使用者的密碼是否是字典一部分的關鍵