一、事件描述
某业务系统采用移动云主机,某次因误操作导致移动云内嵌密码管理相关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
三、附录:密码重置回顾
3.1 单用户模式
重启引导界面按“e”键,进去GRUB编辑界面,定位到linux16这行,末尾添加rd.break,ro修改为rw,然后执行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启动。