如何在 Linux 上檢查所有用戶密碼到期日期
如果你在 Linux 上啟用了密碼策略。密碼必須在到期前進行更改,並且登錄到系統時會收到通知。
如果你很少使用自己的帳戶,那麼可能由於密碼過期而被鎖定。在許多情況下,這可能會在無需密碼登錄的服務帳戶中發生,因為沒人會注意到它。
這將導致停止伺服器上配置的 cronjob/crontab。
如果如此,該如何緩解這種情況。
你可以寫一個 shell 腳本來獲得有關它的通知,我們前一段時間為此寫了一篇文章。
它將給出天數,但是本文旨在在終端中給你實際日期。
這可以使用 chage
命令來實現。
什麼是 chage 命令?
chage
代表 更改時效 。它更改用戶密碼到期信息。
chage
命令可以修改兩次密碼更改之間的天數,以及最後一次更改密碼的日期。
系統使用此信息來確定用戶何時應更改密碼。
它還允許用戶執行其他功能,例如設置帳戶到期日期、在到期後將密碼設置為無效、顯示帳戶時效信息、設置密碼更改之前的最小和最大天數以及設置到期警告天數。
1)如何在 Linux 上檢查特定用戶的密碼到期日期
如果要檢查 Linux 上特定用戶的密碼到期日期,請使用以下命令。
# 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 上檢查所有用戶的密碼到期日期
你可以直接對單個用戶使用 chage 命令,不過可能你對多個用戶使用時可能無效。
為此,你需要編寫一個小的 shell 腳本。下面的 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'
你將得到類似以下的輸出,但是用戶名可能不同。
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 上除系統用戶外的所有用戶的密碼有效期
下面的 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
via: https://www.2daygeek.com/linux-check-user-password-expiration-date/
作者:Magesh Maruthamuthu 選題:lujun9972 譯者:geekpi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive