获取密码过期时间


16

让我以此开头:我没有可用的root用户访问权限。

我最近被锁定了帐户,因为我不知道密码即将到期,然后就过去了。我想在我的启动脚本中添加一个检查并显示时间的检查,以便我知道它何时接近。

我的用户密码到期时是否有获取时间戳的命令或方法?

Answers:


16

您应该能够从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

我用它来快速登录以显示我的密码过期日期。


奇怪的是,我收到一个错误消息:未知用户。我什whoami | xargs chage -l至试图确保自己没有做错明显的事情。
steveo225'4

whoami返回什么,grep $(whoami) /etc/password做什么?
2012年

仅当用户是本地用户(不在LDAP或其他数据库中)时,这才似乎有效。
Patrick

@帕特里克:您很可能是对的,而且我无法使用这种身份验证设置类型的计算机。因此无法提供其他信息。
2012年

whoami确实返回了正确的用户名,但我确实认为系统正在使用LDAP。
steveo225

2

在ldap中,您将执行以下操作:

ldapsearch -x -Z  uid=$1 pwdChangedTime | \
          grep -vE '^#|^$' | grep pwdChangedTime | awk '{print $2}'

0

从中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

可能对你有帮助

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.