如何讓在Linux檢查用戶賬戶到期時間

如果你在 Linux 上啟用了密碼策略。密碼必須在到期前進行更改,並且登錄到系統時會收到通知。如果你很少使用自己的帳戶,那麼可能由於密碼過期而被鎖定。在許多情況下,這可能會在無需密碼登錄的服務帳戶中發生,因為沒人會注意到它。

如何讓在Linux檢查用戶賬戶到期時間

如上這將導致停止服務器上配置的 cronjob/crontab。如果如此,該如何緩解這種情況。你可以寫一個 shell 腳本來獲得有關它的通知,我們前一段時間為此寫了一篇文章。《使用 Bash 腳本發送包含幾天內到期的用戶賬號列表的電子郵件》它將給出天數,但是本文旨在在終端中給你實際日期。這可以使用 chage 命令來實現。

什麼是 chage 命令?

chage 代表更改時效change age。它更改用戶密碼到期信息。

chage 命令可以修改兩次密碼更改之間的天數,以及最後一次更改密碼的日期。

系統使用此信息來確定用戶何時應更改密碼。

它還允許用戶執行其他功能,例如設置帳戶到期日期、在到期後將密碼設置為無效、顯示帳戶時效信息、設置密碼更改之前的最小和最大天數以及設置到期警告天數。

1)如何在 Linux 上檢查特定用戶的密碼到期日期

如果要檢查 Linux 上特定用戶的密碼到期日期,請使用以下命令。

<code># 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
/<code>

2)如何在 Linux 上檢查所有用戶的密碼到期日期

你可以直接對單個用戶使用 chage 命令,不過可能你對多個用戶使用時可能無效。

為此,你需要編寫一個小的 shell 腳本。下面的 shell 腳本可以列出添加到系統中的所有用戶,包括系統用戶。

<code># 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'
/<code>

你將得到類似以下的輸出,但是用戶名可能不同。

<code>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
/<code>

3)如何檢查 Linux 上除系統用戶外的所有用戶的密碼有效期

下面的 shell 腳本將顯示有到期日期的用戶列表。

<code># 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"
/<code>

你將得到類似以下的輸出,但是用戶名可能不同。

<code>u1               : Nov 12, 2018
u2 : Jun 17, 2019
u3 : Jun 17, 2019
u4 : Jun 17, 2019
u5 : Jun 17, 2019
/<code>

原文來自:https://www.linuxprobe.com/?p=176005


分享到:


相關文章: