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

如何在 Linux 上檢查所有用戶密碼到期日期 | Linux 中國

如果你很少使用自己的帳戶,那麼可能由於密碼過期而被鎖定。在許多情況下,這可能會在無需密碼登錄的服務帳戶中發生,因為沒人會注意到它。-- Magesh Maruthamuthu(作者)

如果你在 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>

via: https://www.2daygeek.com/linux-check-user-password-expiration-date/

作者: Magesh Maruthamuthu 選題: lujun9972 譯者: geekpi 校對: wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: