linux口令周期设置生效问题(linux下密码过期时间)

发布时间:2020-05-28编辑:脚本学堂
介绍下linux口令周期设置中遇到的一个问题,linux口令周期设置方法,linux下密码过期时间,需要的朋友参考下。

本节内容:
linux口令周期,linux密码过期时间

前段时间根据公司要求对部分服务器进行安全加固,加固内容中有一项是要设置用户口令周期时间的。
事实证明,这个没有任何用处。

虚拟机环境下测试:
首先,登陆服务器,查看一下/etc/login.def
linux口令周期设置生效

然后,再查看下/etc/shadow:
linux口令周期设置生效问题

发现两者口令策略是完全对的上的。
然后,修改/etc/login.def
linux口令周期设置生效
第一行,密码使用最长时间为90天,90天后会有提醒。
第二行,密码使用最短时间为10天,10天之内是不能修改密码的。
第三行,密码复杂度,最少8位
第四行,密码过期后会提醒5天,5天之后还没改密码的话,帐号会被冻结失效。

修改过后,再查看/etc/shadow,发现没有任何改变。然后我们再 useradd test 添加一个帐号,发现新加的帐号适应修改后的口令周期设置。
linux口令周期设置生效

结论:
经过多次反复测试,不管添加普通帐号还是管理员帐号,还是修改PASS_MIN_DAYS、PASS_MIN_LEN、PASS_WARN_AGE几个选项,都只适用于后来添加的帐号,对于之前已存在的帐号不存在任何影响。

附,linux系统中下密码过期时间设置
 
linux下对于新添加的用户,用户密码过期时间是从/etc/login.defs中pass_max_days提取的,普通系统默认就是99999,而有些安全操作系统是90。
更改此处,只是让新建的用户默认密码过期时间变化,已有用户密码过期时间仍然不变。
 

[root@jb200.com ~]# chage --help
Usage: chage [options] user
Options:
  -d, --lastday LAST_DAY        set 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

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

[root@jb200.com ~]# chage -l root
Last password change                                    : Oct 19, 2010
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

更改用:

chage -M 90 root
[root@jb200.com ~]#chage -M 90 root
[root@jb200.com ~]#chage -l root

如果以后添加一个用户,那么默认的时间还是没改的,还必须得去/etc/login.defs修改PASS_MAX_DAYS 的默认值.那么如果我直接修改全局/etc/login.defs所在的用户会跟着改变吗? 据我的测试是不会改变的,除非重启后,但我们的服务器不是你想重启的就可以重启的!如果管理严格的地方,重启还得经过很多程序步骤.改完全局时,没有更改的用户,想要让他也同样具备此功能.就得一个个的执行! (想学习linux命令的用法吗?请移步至: linux命令大全

也可以直接用vim 编辑器去编辑PASS_MAX_DAYS 99999

也可以用其它的工具
 

[root@jb200.com ~]#sed -i.bak -e 's/^(PASS_MAX_DAYS).*/1   90/' /etc/login.defs

查看一下是否
 

[root@jb200.com ~]#cat /etc/login.defs |grep "PASS_M";

强制用户登陆时修改口令
 

[root@jb200.com ~]#chage -d 0 username(linux)
[root@jb200.com ~]#passwd -f username(solaris)

强制用户下次登陆时修改密码,并且设置密码最低有效期0和最高有限期90,提前15天发警报提示
 

[root@jb200.com ~]#chage -d 0 -m 0 -M 90 -W 15 root(linux)
[root@jb200.com ~]#passwd -f -n 0 -x 90 -w 15 root(solaris)

查看某个用户的密码设置情况
 

[root@jb200.com ~]#chage -l username

修改密码配置文件
 

[root@jb200.com ~]#vi /etc/login.defs

以上就是linux下口令周期设置生效问题的解决方法,linux下密码过期时间设置方法,希望对大家有所帮助。