linux下精确指定账号和密码过期时间

以前的一篇文章”linux下忘记用户密码并已过期,且又不能改变密码该怎么办?”(https://shengbao.org/203.html) 中最后,留下过一个彩蛋。如何精确简单的指定账号密码的过期时间?这里其实本意是指定密码过期时间。自己当时问的都不严谨。

分析问题

我们开始分析chage命令,是否存在指定过期时间的命令。

chage参数意思:

  • -m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
  • -M 密码保持有效的最大天数。
  • -W 用户密码到期前,提前收到警告信息的天数。
  • -E 帐号到期的日期。过了这天,此帐号将不可用。
  • -d 上一次更改的日期
  • -i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
  • -l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

首先,我们来看账号信息

该yunwei账号有效期为永久。我们来使用-E参数指定过期时间。

Chage -E 2017-08-28 yunwei

从上图 可以看到生效的选项为:accunt expires(账号过期日)。不是我们需要的准确的密码过期选项。

那如何精确的控制密码过期时间呢?

如上图,我们首先使用chage -M 1 yunwei,密码有效期延后1天。如何精确的控制密码过期时间,只有这个笨办法。

接着我们再来仔细的思考下,如果你有效期设置的时间比较久,是不是要算很大的数字来得出准确的时间呢?

突发奇想,将最后密码修改时间改为今天,是不是更方便呢?

chage -d 2017-08-27 yunwei

然后,想让他月底过期就很方便了

chage -M 4 yunwei

补充

回想了下,chage -d 指定最后密码修改时间。如果将有效期设定为今天,密码有效期会不会自动改变呢?经过测试,密码有效期如果指定为180天的话。如果,chage -d 设置为今天后,密码有效期自动从当前日期开始计算180天。

结论分析

很多知识在学习的时候不仔细,以前一直觉得-M 选项的计数是1970-01-01开始的,后来查看了-E参数,才恍然大悟,这是账号过期时间。不是密码过期时间。密码过期时间=最后修改时间+天数

标签:Linux 发布于:2019-11-10 21:11:31