linux上查看用户上次密码修改时间 以及 设置用户账户永不过期
1、linux查看上次修改密码时间
方式1 查看用户上次修改密码时间(略微复杂);
cat /etc/shadow|grep yin
yin:sagoagnangaoigagnaga:19534:0:99999:7:::
第三段字符就是最近一次密码修改的天数,此数字是距离1970年1月1日的天数
使用这个命令查看哪天修改密码
date -u -d "1970-01-01 UTC $((19534 * 86400 )) seconds"
Mon Jun 26 00:00:00 UTC 2023 #结果显示2023.06.26
实例:
#新建用户ctgredis
[root@local ~]# useradd ctgredis
[root@local ~]# yum -y install apg >/dev/null #安装强密码生成工具,不想装的可以用:openssl rand -base64 6
[root@local ~]# apg -M SNCL -m 8 -x 9 #{S特殊字符,N数字,C大写字母,L小写字母},-m 最小长度为8个字符,-x 最大长度为9个字符;
~TwirHiv1
9NevTyg+
1owcafEk*
/Shleun7
sles7Od&
4TwePras_
[root@local ~]# echo "sles7Od&"|passwd --stdin ctgredis #非交互式设置密码,交互式使用passwd回车然后输入密码即可;
更改用户 ctgredis 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@local ~]#
[root@local ~]# grep ctgredis /etc/shadow
ctgredis:$6$YdcQUScZ$pymQWRWceZX7RR.EkXzsboGwGVzjc8bX06QBk47TXbRVJrj/.7OrFOf5o8Ma3bmwZa53tRdO3hygQQ2PHVTma0:19909:0:99999:7:::
#查看上回修改时间,显示格式如下
[root@local ~]# date -u -d "1970-01-01 UTC $((19909 * 86400 )) seconds"
2024年 07月 05日 星期五 00:00:00 UTC
[root@local ~]# date +%F -u -d "1970-01-01 UTC $((19909 * 86400 )) seconds"
2024-07-05
[root@local ~]# date '+%Y/%m/%d' -u -d "1970-01-01 UTC $((19909 * 86400 )) seconds"
2024/07/05
#想一次查看的,输入下方非交互式
[root@local ~]# for i in `grep ctgredis /etc/shadow|awk -F ':' '{print $3}'`;do date -u -d "1970-01-01 UTC $(($i * 86400 )) seconds";done
2024年 07月 05日 星期五 00:00:00 UTC
方式2 查看密码上回修改时间(简单):
[root@local ~]# chage -l ctgredis
最近一次密码修改时间 :7月 05, 2024 #最近密码修改时间
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
2、设置用户账户永不过期
需要注意的是,密码和账户两个都需永不过期,加上一个密码失效就是三个从不代表密码永不过期;
我自己的新建用户之后默认是 never 从不,如下;
[root@local ~]# chage -l ctgredis
最近一次密码修改时间 :7月 05, 2024
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
#先修改为有过期时间的,再设置为永不过期;
[root@local ~]# chage -m 0 -M 30 -I -1 -E 19999 ctgredis #修改成非nerver
[root@local ~]# chage -l ctgredis
最近一次密码修改时间 :7月 05, 2024
密码过期时间 :8月 04, 2024 #密码在2024/08/04过期;
密码失效时间 :从不 #密码失效默认是从不,最好保持,否则密码过期,有你哭的;
帐户过期时间 :10月 03, 2024 #账户过期,这个跟密码过期都设置 从不;
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :30 #密码30天就要改密码;
在密码过期之前警告的天数 :7 #密码过期前7天警告用户;
#修改用户永不过期:
[root@local ~]# chage -m 0 -M 99999 -I -1 -E -1 -W 14 ctgredis
[root@local ~]# chage -l ctgredis
最近一次密码修改时间 :7月 05, 2024
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :14
# -m 0: 设置密码最小存活期为0天,这意味着用户可以在任何时候更改他们的密码;
# -M 99999: 设置密码最长存活期为99999天,大约274年,这几乎不可能达到这么长的天数,所有默认就是nerver 从不过期了;
# I -1: 设置密码过期后账号被锁定前的天数为-1,密码过期后账号不会被锁定。
# -E -1: 设置账号的过期日期为-1,账号永不过期。
# -W 14: 设置密码过期前的警告天数为14天,这意味着在密码即将过期前14天,系统会开始提醒用户更换密码。
每一项都可单独使用:譬如:
[root@local ~]# chage -W 999 ctgredis
[root@local ~]# chage -l ctgredis
最近一次密码修改时间 :7月 05, 2024
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :999 #此项被修改