一次Linux系统密码修改失败事件

一、事件描述

  某业务系统采用移动云主机,某次因误操作导致移动云内嵌密码管理相关Pga进程导致页面无法修改密码,东移动云主机web终端登录也无法修改,密码错误次数最大已无法登录,无奈只能重启主机,修改密码;但在单用户模式下修改密码执行passwd时报错:module is unkown;

在这里插入图片描述

后调试后又报错:Authentication token manipulation error,如下图所示:

在这里插入图片描述

二、分析处理

1)登录类日志,我们首先要看的日志为/var/log/secure或audit,然后辅助message日志一并分析,下图为secure日志:

在这里插入图片描述
  如上图所示:pam相关报:/usr/lib64/security/pam_passwdqc.so模块加载错误;而跟登录相关的文件在/etc/pam.d/下有:login、password、passwd-auth、system-auth这几个;相关经验显示,有的在login文件中配置,现场实际再system-auth文件中配置,如下图所示:

在这里插入图片描述
2)注释跟passwdqc.so模块相关的配置项:

在这里插入图片描述
3)修改完报错只需passwd命令还是报错,检查系统内相关的文件

在这里插入图片描述
4)检查/etc/passwd和/etc/shadow、/etc/group、/etc/gshadow文件的特殊属性,执行lsattr查看,发现2文件均有i属性,属性说明如下:

在这里插入图片描述
执行charrt -i /etc/passwd /etc/shadow,去除i属性限制(有的是配置了a权限),再次执行passwd命令,恢复:

在这里插入图片描述

5)然后退出单用户模式,重启即可用新密码进入系统。

6)相关经验表明:根分区满、passwd文件与shadow文件不同步(可执行pwconv命令进入密码投影模式比对,把前者投影到后者,根据passwd文件修改shadow文件)、inode耗尽(df -i查看,大多情况是产生过多的临时小文件,可执行如下命令删除无用的临时文件sudo find /tmp -typef-exec rm {}\;和 0字节文件 sudo find /home -type f-size 0 -exec rm \;

7)也可以尝试直接修改shadow文件密码串:

  • 方法一
    perl -e ‘print crypt(“password”,"’$1\S2BDxrkQcS").“n”"
    注:这里的2BDxrkQc,是shadow中salt(S3)的内容,如果要随机生成salt,可使用方法二
  • 方法二
    echo"password"openssl passwd-1-sat$(</dev/urandom tr -dc "T:alnum:'I head -c 32) -stdin

8)补充:

centos在限制用户账户认证失败次数限制时,注意模块,centos6以上要使用pam_tally2.so模块,而非pam_tally.so
在这里插入图片描述

三、附录:密码重置回顾

3.1 单用户模式

重启引导界面按“e”键,进去GRUB编辑界面,定位到linux16这行,末尾添加rd.break,ro修改为rw,然后执行Ctrl+x引导进入单用户模式:

在这里插入图片描述
centos7:把’ro’改成’rw init=/sysroot/bin/sh’,并将console=tty0 console=ttyS0’删除,完成后按ctrl+x即可进入单用户模式;
在这里插入图片描述

进入后执行如下命令,重新挂载/sysroot为可读写模式,并切换根目录为/sysroot

mount -o remount, rw /sysroot  
chroot /sysroot
sh-4.2# passwd root  #或echo "password"| passwd --stdin admin
sh-4.2# touch /.autorelabel
sh-4.2# exit
exit

方法2:定位到linux16这行,将“ro”替换成 rw init=/sysroot/bin/sh,执行Ctrl+x进入单用户模式

对于Ubuntu:找到Linux/boot/vmlnuz-4.2.0-27-generic …ro recovery nomodeset
删除recovery nomodeset,追加 quiet splash rw init=/bin/bash,然后按F10启动。

在这里插入图片描述

注:Ubuntu,开机进入内核时按’个’或↓键,进入GNU模式并选择advanced options for Ubuntu回车,选择recovery mode 按’e’进入编辑模式,找到’ro console=ttyS0 recoverynomodeset(ubuntu16.04则为’ro console=ttyS0 single nomodeset)字段;
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ximenjianxue/article/details/129171718