设置密码复杂度、密码有效期,重新制作ISO,安装后登录系统必须重新修改密码

1 环境

OS: Server 8.3 (衍生自CentOS8.3)

2 问题描述

  按照文章《系统安全加固1——密码复杂度》设置了系统复杂度,《系统安全加固2——密码有效期》设置了密码有效期之后,重新打包ISO。安装系统时,设置的用户密码已经符合复杂度要求,但是装完系统、重启之后登录时,依旧让重新修改密码

3 问题分析

  这个问题说很严重倒也不至于,但是如果对于不清楚原因的人来说,很容易导致使用者崩溃。
  下面主要记录我处理这个问题时的思路步骤。

3.1 查看系统日志

  和系统安全相关的日志记录在 /var/log/secure 文件中,打开文件,查找PAM模块(关于PAM模块卖个坑,后面补)相关字眼,可以看到如下信息:

......
Sep  1 06:10:31 bogon lightdm[1237]: pam_unix(lightdm:account): expired password for user loongson (password aged)
Sep  1 06:10:31 bogon lightdm[1237]: pam_pwquality(lightdm:chauthtok): pam_parse: unknown or broken option; enforce-for-root
Sep  1 06:10:40 bogon lightdm[1237]: pam_pwquality(lightdm:chauthtok): pam_parse: unknown or broken option; enforce-for-root
Sep  1 06:10:51 bogon polkitd[650]: /usr/share/polkit-1/rules.d/lightdm.rules:3: action=[Action id='org.freedesktop.DisplayManager.AccountsService.ReadAny']
Sep  1 06:10:51 bogon polkitd[650]: /usr/share/polkit-1/rules.d/lightdm.rules:4: subject=[Subject pid=1114 user='lightdm' groups=lightdm seat='seat0' session='c1' local=true active=false]
Sep  1 06:10:54 bogon systemd[1275]: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Sep  1 06:10:54 bogon login[1268]: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
......

  其中pam_unix(lightdm:account): expired password for user loongson (password aged)(中文含义:用户loongson的密码过期(密码老化))就已经很明确:为什么无论在安装时输入的密码是否符合密码复杂度要求,安装完系统后第一次重启登录都需要修改密码。
  第二行和第三行是因为我配置文件中的“enforce-for-root”字段写错了,这个点也已经在文章《系统安全加固1——密码复杂度》中也已经指出来了。

3.2 查找3.1中密码过期原因

  安装完系统之后,因为上面的配置对root用户没有生效,我通过root登录到系统,查看loongson用户密码信息信息,如下:

3.2.1 /etc/shadow文件信息

在这里插入图片描述
至此就已经非常明白了!如果还有不明白的同学,把你/etc/shadow文件中用户名所在行的密码有效期从99999修改为其他数字,然后执行需要输入密码的场景。
。。。。。。
。。。。。。
试完了么?

嗯,这下明白了吧?

posted @ 2021-09-02 20:58  streamlet_hy  阅读(64)  评论(0编辑  收藏  举报  来源