让我先这样说:我愿意不是具有可用的 root 访问权限。
我最近被锁定了我的帐户,因为我不知道密码即将到期,然后就过去了。我想在我的启动脚本中添加一个检查,以检查并显示时间,以便我知道时间即将到来。
有没有命令或方法可以获取我的用户密码过期时的时间戳?
答案1
您应该能够从chage
实用程序获取该信息。不需要 root 即可在列表模式下运行。
注意:这很可能仅适用于passwd
基于本地的身份验证。我不知道是否可以使其与不将登录信息放入passwd
/文件的身份验证模式一起使用shadow
。我猜这些解决方案提供了自己的工具,但不了解它们。
$ chage -l test
Last password change : Apr 17, 2012
Password expires : Apr 27, 2012
Password inactive : never
Account expires : May 20, 2012
Minimum number of days between password change : 0
Maximum number of days between password change : 10
Number of days of warning before password expires : 7
我使用它与快速 awk 一起在登录时显示我的密码到期日期。
答案2
在 ldap 中你会做类似的事情:
ldapsearch -x -Z uid=$1 pwdChangedTime | \
grep -vE '^#|^$' | grep pwdChangedTime | awk '{print $2}'
答案3
您chage
可以进行多项更改并可以了解登录详细信息,如下所示...
Usage: chage [options] [LOGIN]
Options:
-d, --lastday LAST_DAY set date of last password change to LAST_DAY
-E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-h, --help display this help message and exit
-I, --inactive INACTIVE set password inactive after expiration
to INACTIVE
-l, --list show account aging information
-m, --mindays MIN_DAYS set minimum number of days before password
change to MIN_DAYS
-M, --maxdays MAX_DAYS set maximim number of days before password
change to MAX_DAYS
-W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS
如果您有 Root 访问权限,则可以更改密码过期时间,只需编辑..
vim /etc/login.defs
只需设置下面的值...
PASS_MAX_DAYS 30
PASS_MIN_DAYS 1
PASS_WARN_AGE 7
它可能对你有帮助