Linux中使用chage 命令查看并修改用户密码到期日期

2023年 7月 2日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

Linux中使用chage 命令查看并修改用户密码到期日期

如果你在 Linux 上启用了密码策略。密码必须在到期前进行更改,并且登录到系统时会收到通知。如果你很少使用自己的帐户,那么可能由于密码过期而被锁定。在许多情况下,这可能会在无需密码登录的服务帐户中发生,因为没人会注意到它。

如上这将导致停止服务器上配置的 cronjob/crontab。如果如此,该如何缓解这种情况。你可以写一个 shell 脚本来获得有关它的通知,我们前一段时间为此写了一篇文章。《使用 Bash 脚本发送包含几天内到期的用户账号列表的电子邮件》它将给出天数,但是本文旨在在终端中给你实际日期。这可以使用 chage 命令来实现。

什么是 chage 命令?

chage 代表更改时效change age。它更改用户密码到期信息。

chage 命令可以修改两次密码更改之间的天数,以及最后一次更改密码的日期。

系统使用此信息来确定用户何时应更改密码。

它还允许用户执行其他功能,例如设置帐户到期日期、在到期后将密码设置为无效、显示帐户时效信息、设置密码更改之前的最小和最大天数以及设置到期警告天数。

1)如何在 Linux 上检查特定用户的密码到期日期

如果要检查 Linux 上特定用户的密码到期日期,请使用以下命令。

# chage -l daygeek    Last password change                                    : Feb 13, 2023  Password expires                                        : May 13, 2023  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  

本文来源:www.lxlinux.net/8347.html,若引用不当,请联系修改。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: