如何在Linux上檢查所有用戶密碼到期日期
如果你在 Linux 上啟用了密碼策略。密碼必須在到期前進(jìn)行更改,并且登錄到系統(tǒng)時(shí)會(huì)收到通知。
如果你很少使用自己的帳戶,那么可能由于密碼過期而被鎖定。在許多情況下,這可能會(huì)在無需密碼登錄的服務(wù)帳戶中發(fā)生,因?yàn)闆]人會(huì)注意到它。
這將導(dǎo)致停止服務(wù)器上配置的 cronjob/crontab。
如果如此,該如何緩解這種情況。
你可以寫一個(gè) shell 腳本來獲得有關(guān)它的通知,我們前一段時(shí)間為此寫了一篇文章。
它將給出天數(shù),但是本文旨在在終端中給你實(shí)際日期。
這可以使用 chage
命令來實(shí)現(xiàn)。
什么是 chage 命令?
chage
代表更改時(shí)效。它更改用戶密碼到期信息。
chage
命令可以修改兩次密碼更改之間的天數(shù),以及最后一次更改密碼的日期。
系統(tǒng)使用此信息來確定用戶何時(shí)應(yīng)更改密碼。
它還允許用戶執(zhí)行其他功能,例如設(shè)置帳戶到期日期、在到期后將密碼設(shè)置為無效、顯示帳戶時(shí)效信息、設(shè)置密碼更改之前的最小和最大天數(shù)以及設(shè)置到期警告天數(shù)。
1)如何在 Linux 上檢查特定用戶的密碼到期日期
如果要檢查 Linux 上特定用戶的密碼到期日期,請(qǐng)使用以下命令。
# chage -l daygeek
Last password change : Feb 13, 2020
Password expires : May 13, 2020
Password inactive : never
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
2)如何在 Linux 上檢查所有用戶的密碼到期日期
你可以直接對(duì)單個(gè)用戶使用 chage 命令,不過可能你對(duì)多個(gè)用戶使用時(shí)可能無效。
為此,你需要編寫一個(gè)小的 shell 腳本。下面的 shell 腳本可以列出添加到系統(tǒng)中的所有用戶,包括系統(tǒng)用戶。
# for user in $(cat /etc/passwd |cut -d: -f1); do echo $user; chage -l $user | grep "Password expires"; done | paste -d " " - - | sed 's/Password expires//g'
你將得到類似以下的輸出,但是用戶名可能不同。
root : never
bin : never
daemon : never
adm : never
lp : never
sync : never
shutdown : never
u1 : Nov 12, 2018
u2 : Jun 17, 2019
u3 : Jun 17, 2019
u4 : Jun 17, 2019
u5 : Jun 17, 2019
3)如何檢查 Linux 上除系統(tǒng)用戶外的所有用戶的密碼有效期
下面的 shell 腳本將顯示有到期日期的用戶列表。
# for user in $(cat /etc/passwd |cut -d: -f1); do echo $user; chage -l $user | grep "Password expires"; done | paste -d " " - - | sed 's/Password expires//g' | grep -v "never"
你將得到類似以下的輸出,但是用戶名可能不同。
u1 : Nov 12, 2018
u2 : Jun 17, 2019
u3 : Jun 17, 2019
u4 : Jun 17, 2019
u5 : Jun 17, 2019