如何让在Linux检查用户账户到期时间

本文介绍如何在Linux系统中使用chage命令管理用户密码的到期日期,包括检查特定用户和所有用户的密码到期日期,以及如何编写shell脚本来自动化这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

如何让在Linux检查用户账户到期时间如何让在Linux检查用户账户到期时间

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

什么是 chage 命令

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

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"

你将得到类似以下的输出,但是用户名可能不同。Linux就该这么学

u1               : Nov 12, 2018
u2               : Jun 17, 2019
u3               : Jun 17, 2019
u4               : Jun 17, 2019
u5               : Jun 17, 2019
好的,我了解你的问题了。针对你的问题,我会逐一回答: 1. 以默认账号iotuser/iotuser登录Ubuntu系统。 你可以通过SSH工具Xshell,输入主机IP地址,端口号和登录名和密码iotuser/iotuser,登录Ubuntu系统。 2. 开通root用户的SSH权限。 在Ubuntu系统中,使用以下命令开通root用户SSH权限: ``` sudo sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config sudo service sshd restart ``` 3. 使用SSH工具Xshell,以root用户登录Ubuntu系统。 通过SSH工具Xshell,输入主机IP地址,端口号和登录名和密码root,登录Ubuntu系统。 4. 命令行查询网卡eth0的工作状态,查询结果如图: 您可以使用以下命令查询网卡eth0的工作状态: ``` sudo ifconfig eth0 ``` 查询结果如下图所示: 5. 在/home/iotuser目录下创建aaa,bbb两个目录,在aaa目录下添加a.txt文件,在bbb目录下添加ccc目录和b.txt文件,在ccc目录下添加c.txt文件。 您可以使用以下命令创建目录和文件: ``` cd /home/iotuser mkdir aaa mkdir bbb cd aaa touch a.txt cd ../bbb mkdir ccc touch b.txt cd ccc touch c.txt ``` 6. 命令行将bbb文件夹权限设置为:每个人都有读和写以及执行的权限(包含子目录)。 您可以使用以下命令将bbb文件夹权限设置为每个人都有读和写以及执行的权限,包含子目录: ``` sudo chmod -R 777 /home/iotuser/bbb ``` 7. 合并压缩aaa和 bbb目录为xxx.tar.gz 您可以使用以下命令合并压缩aaa和bbb目录为xxx.tar.gz: ``` cd /home/iotuser tar -czvf xxx.tar.gz aaa bbb ``` 8. 对Ubuntu系统进行加固,修改系统中关于新用户密码有效性设置项: 您可以使用以下命令修改系统中关于新用户密码有效性设置项: ``` sudo chage -M 30 -m 1 -W 3 username ``` 其中,username为新用户的用户名。上述命令分别表示:密码最长使用数为30,两次密码修改之间最小的间隔数为1,密码过期前给出警告的数为3。 9. 对Ubuntu系统进行加固,修改系统中关于新用户密码复杂度设置项: 您可以使用以下命令修改系统中关于新用户密码复杂度设置项: ``` sudo apt-get install libpam-pwquality sudo sed -i 's/password requisite pam_pwquality.so retry=3/password requisite pam_pwquality.so retry=3 minlen=6 ucredit=1/g' /etc/pam.d/common-password ``` 上述命令会安装libpam-pwquality,然后修改/etc/pam.d/common-password文件,将密码最小长度设置为6,设置最少的大写字母个数为1。 10. 对账户远程登录失败做安全限制,如远程登录失败三次锁定180秒 您可以使用以下命令对账户远程登录失败做安全限制,如远程登录失败三次锁定180秒: ``` sudo apt-get install fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo sed -i 's/bantime = 600/bantime = 180/g' /etc/fail2ban/jail.local sudo systemctl enable fail2ban sudo systemctl start fail2ban ``` 上述命令会安装fail2ban,将远程登录失败三次锁定时间设置为180秒,然后启用fail2ban服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值