Linux系統(tǒng)下的用戶密碼的有效期
可以修改密碼可以通過(guò)login.defs文件控制。設(shè)置密碼過(guò)期期限(默認(rèn)情況下,用戶的密碼永不過(guò)期。)
編輯 /etc/login.defs 文件,可以設(shè)置當(dāng)前密碼的有效期限,具體變量如下所示:
sudo vi /etc/login.defs PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7 # 這些設(shè)置要求用戶每6個(gè)月改變他們的密碼,并且會(huì)提前7天提醒用戶密碼快到期了。
說(shuō)明:
Password aging controls:
PASS_MAX_DAYS Maximum number of days a password may be used.
(密碼可以使用的最大天數(shù)。)
PASS_MIN_DAYS Minimum number of days allowed between password changes.
(密碼更改之間允許的最小天數(shù)。一般不要設(shè)置)
PASS_MIN_LEN Minimum acceptable password length.
(可接受的最小密碼長(zhǎng)度。)
PASS_WARN_AGE Number of days warning given before a password expires.
(密碼過(guò)期前發(fā)出警告的天數(shù)。)
# 默認(rèn)值 PASS_MAX_DAYS 99999 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7 # 建議值 PASS_MAX_DAYS 90 PASS_MIN_DAYS 0 PASS_MIN_LEN 6 PASS_WARN_AGE 7
可以通過(guò)sed命令設(shè)置:
sed -r -i 's/(PASS_MAX_DAYS)s+([0-9]+)/1 90/' /etc/login.defs
以上將 PASS_MAX_DAYS 99999 設(shè)置為 PASS_MAX_DAYS 90(密碼有效期90天)
sed -r -i 's/(PASS_MIN_LEN)s+([0-9]+)/1 13/' /etc/login.defs
以上將 PASS_MIN_LEN 5 設(shè)置為 PASS_MIN_LEN 13(密碼字符長(zhǎng)度13位)
Linux系統(tǒng)下的用戶密碼的復(fù)雜度規(guī)則
用戶密碼復(fù)雜度規(guī)則設(shè)定,需要通過(guò)/etc/pam.d/system-auth文件實(shí)施(針對(duì)的是普通用戶狀態(tài)下修改密碼會(huì)生效,root用戶狀態(tài)下無(wú)效),centos6中默認(rèn)是通過(guò)pam_cracklib.so模塊控制,(在CentOS 7上實(shí)現(xiàn)密碼復(fù)雜度策略設(shè)置,主要是使用PAM pwquality模塊完成):
[root@localhost ~]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@localhost ~]# vim /etc/pam.d/system-auth 將文件中的下面兩行: password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok 改為: password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 ucredit=-2 lcredit=-4 dcredit=-1 ocredit=-1 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5
上面文件中參數(shù)分別說(shuō)明設(shè)置密碼的時(shí)候要遵循下面的規(guī)則:
retry=3 定義登錄/修改密碼失敗時(shí),可以重試的次數(shù);
type=xxx 當(dāng)添加/修改密碼時(shí),系統(tǒng)給出的缺省提示符是什么,用來(lái)修改缺省的密碼提示文本。默認(rèn)是不修改的,如上例。
minlen=8 定義用戶密碼的最小長(zhǎng)度為8位
ucredit=-2 定義用戶密碼中最少有2個(gè)大寫字母 (數(shù)字為負(fù)數(shù),表示至少有多少個(gè)大寫字母;數(shù)字為正數(shù),表示至多有多少個(gè)大寫字母;下面同理)
lcredit=-4 定義用戶密碼中最少有4個(gè)小寫字母
dcredit=-1 定義用戶密碼中最少有1個(gè)數(shù)字
ocredit=-1 定義用戶密碼中最少有1個(gè)特殊字符(除數(shù)字、字母之外)
remember=5 修改用戶密碼時(shí)最近5次用過(guò)的舊密碼就不能重用了
除了上面的幾個(gè)參數(shù),還可以設(shè)定下面的參數(shù)規(guī)則
difok=N 此選項(xiàng)用來(lái)規(guī)定新密碼中必需有N個(gè)字符與舊密碼不同。如果新密碼中有1/2以上的字符與舊密碼不同時(shí),該新密碼就會(huì)被接受。
difignore=N 此選項(xiàng)用來(lái)設(shè)定在difok之前收到多少個(gè)字符時(shí),difok設(shè)置會(huì)被忽略,缺省為23。
minclass=N 此選項(xiàng)用來(lái)規(guī)定新密碼中的字符類別的最小數(shù)目,字符一般有四種類別:數(shù)字、大寫字母、小寫字母,以及特殊字符。
禁止使用舊密碼
在 /etc/pam.d/system-auth 里找到同時(shí)有 “password” 和 “pam_unix.so” 字段并且附加有 “remember=5” 的那行,它表示禁止使用最近用過(guò)的5個(gè)密碼(己使用過(guò)的密碼會(huì)被保存在 /etc/security/opasswd 下面)。
sudo vi /etc/pam.d/system-auth password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5
設(shè)置最短密碼長(zhǎng)度
找到同時(shí)有 “password” 和 “pam_cracklib.so” 字段并且附加有 “minlen=10” 的那行,它表示最小密碼長(zhǎng)度為(10 - 類型數(shù)量)。這里的 “類型數(shù)量” 表示不同的字符類型數(shù)量。PAM 提供4種類型符號(hào)作為密碼(大寫字母、小寫字母、數(shù)字和標(biāo)點(diǎn)符號(hào))。如果你的密碼同時(shí)用上了這4種類型的符號(hào),并且你的 minlen 設(shè)為10,那么最短的密碼長(zhǎng)度允許是6個(gè)字符。
sudo vi /etc/pam.d/system-auth password requisite pam_cracklib.so retry=3 difok=3 minlen=10
設(shè)置密碼復(fù)雜度(常用)
找到同時(shí)有 “password” 和 “pam_cracklib.so” 字段并且附加有 “ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1” 的那行,它表示密碼必須至少包含一個(gè)大寫字母(ucredit),兩個(gè)小寫字母(lcredit),一個(gè)數(shù)字(dcredit)和一個(gè)標(biāo)點(diǎn)符號(hào)(ocredit)。
sudo vi /etc/pam.d/system-auth password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
CentOS 7通用規(guī)則設(shè)置示例:
# 以root用戶登錄系統(tǒng) cp /etc/pam.d/system-auth /etc/pam.d/system-auth.bak vim /etc/pam.d/system-auth password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=12 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=10 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
retry=3 定義登錄/修改密碼失敗時(shí),可以重試的次數(shù);
minlen=12 密碼最小長(zhǎng)度為8個(gè)字符。
lcredit=-1 密碼應(yīng)包含的小寫字母的至少一個(gè)
ucredit=-1 密碼應(yīng)包含的大寫字母至少一個(gè)
dcredit=-1 將密碼包含的數(shù)字至少為一個(gè)
ocredit=-1 設(shè)置其他符號(hào)的最小數(shù)量,例如@,#、! $%等,至少要有一個(gè)
enforce_for_root 確保即使是root用戶設(shè)置密碼,也應(yīng)強(qiáng)制執(zhí)行復(fù)雜性策略。
示例:password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=13 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
鏈接:https://www.cnblogs.com/xiongzaiqiren/p/17027924.html
-
Linux
+關(guān)注
關(guān)注
87文章
11459瀏覽量
212778
原文標(biāo)題:Linux系統(tǒng)設(shè)置用戶密碼規(guī)則(復(fù)雜密碼策略)方法
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux系統(tǒng)更改系統(tǒng)用戶與密碼,RK3568工控主板演示

家里wifi密碼忘了該怎樣找回密碼

如何給軟件上密碼鎖?
禁止使用root用戶通過(guò)ssh遠(yuǎn)程登錄Linux

高手Linux運(yùn)維管理必備工具大全
NAS重置密碼攻略來(lái)襲,讓你告別‘密碼焦慮’!

PostgreSQL將不再支持MD5密碼
用戶與組管理全攻略之確保權(quán)限分配無(wú)懈可擊
Linux用戶管理詳解
網(wǎng)關(guān)的設(shè)置規(guī)則
艾體寶洞察 一文讀懂最新密碼存儲(chǔ)方法,揭秘密碼存儲(chǔ)常見誤區(qū)!

評(píng)論