使用正確的設定,可以強制 Linux 使用者定期更改密碼。以下是檢視密碼時效以及如何更改其中設定的方法。
可以將 Linux 系統上的使用者密碼設定為永久或設定過期時間,以讓人們必須定期重置它們。出於安全原因,通常認為定期更改密碼是一種好習慣,但預設並未設定。
要檢視和修改密碼時效,你需要熟悉幾個重要的命令:chage
命令及其 -l
選項,以及 passwd
命令及其 -S
選項。本文會介紹這些命令,還有其他一些 chage
命令選項來設定密碼時效。
確定某個特定帳戶是否已設定密碼時效的方法是使用如下 chage
命令。請注意,除了你自己的帳戶以外,其他任何帳戶都需要 root 許可權。請注意下面的密碼到期日期。
$ sudo chage -l doryLast password change : Mar 15, 2020Password expires : Jun 13, 2020 <==Password inactive : neverAccount expires : neverMinimum number of days between password change : 10Maximum number of days between password change : 90Number of days of warning before password expires : 14
如果未應用密碼時效,那麼帳戶資訊將如下所示:
$ sudo chage -l nemoLast password change : Jan 14, 2019Password expires : never <==Password inactive : neverAccount expires : Mar 26, 2706989Minimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7
你也可以使用 passwd -S
命令檢視某些資訊,但是你需要知道輸出中的每個欄位代表什麼:
dory$ passwd -Sdory P 03/15/2020 10 90 14 -1
這裡的七個欄位代表:
L
= 鎖定,NP
= 無密碼,P
= 可用密碼)需要注意的一件事是,chage
命令不會顯示帳戶是否被鎖定;它僅顯示密碼時效設定。另一方面,passwd -S
命令將告訴你密碼被鎖定的時間。在此例中,請注意帳戶狀態為 L
:
$ sudo passwd -S dorothydorothy L 07/09/2019 0 99999 7 10
通過將 /etc/shadow
檔案中通常包含密碼的“雜湊”欄位變為 !
,從而達成鎖定的效果。
$ sudo grep dorothy /etc/shadowdorothy:!:18086:0:99999:7:10:: <==
帳戶被鎖定的事實在 chage
輸出中並不明顯:
$ sudo chage -l dorothyLast password change : Jul 09, 2019Password expires : neverPassword inactive : neverAccount expires : neverMinimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7
最常用的設定是最短和最長的天數。它們經常結合使用。例如,你可以設定一個密碼,使其最長不能使用超過 90 天(最大),然後新增一個有效期為一周或 10 天(最小)的密碼。這樣可以確保使用者不會在需要更改密碼後馬上改回以前的密碼。
$ sudo chage -M 90 -m 10 shark$ sudo chage -l sharkLast password change : Mar 16, 2020Password expires : Jun 14, 2020Password inactive : neverAccount expires : neverMinimum number of days between password change : 10 <==Maximum number of days between password change : 90 <==Number of days of warning before password expires : 7
你還可以使用 -E
選項為帳戶設定特定的到期日期。
$ sudo chage -E 2020-11-11 tadpole$ sudo chage -l tadpoleLast password change : Oct 15, 2019Password expires : neverPassword inactive : neverAccount expires : Nov 11, 2020 <==Minimum number of days between password change : 0Maximum number of days between password change : 99999Number of days of warning before password expires : 7
密碼時效可能是一個重要的選擇,只要它不鼓勵使用者使用過於簡單的密碼或以不安全的方式寫下來即可。有關控制密碼字元(例如,大小寫字母、數位等的組合)的更多資訊,請參考這篇關於的文章。