抛出问题

现场同事在安装PG数据库后,发现:
su切root,报:passwd: Module is unknown

passwd user1修改用户密码,报:passwd: Module is unknown

问题定位

看到这个报错,初步定位就是PAM的问题,至于是PAM配置的问题,还是缺少了PAM模块,还是其他,就需要逐步排查了。

1、查看了现场的/etc/pam.d/su、/etc/pam.d/passwd,均未见问题,但是这两个配置文件均引用了/etc/pam.d/system-auth

2、查看/etc/pam.d/system-auth,也没有发现问题,但是这个文件里的配置就要复杂了很多,所以找了台相同版本的Linux虚机,将其/etc/pam.d/system-auth备份后,替换成现场出问题设备的配置,尝试去复现现场问题:未复现。

3、至此,只能怀疑缺失了PAM模块了,所以,通过命令ls -l /usr/lib64/security/ 查看了/etc/pam.d/system-auth中涉及的PAM,也没有缺失。

4、结合,现场同事是安装PG后出现的问题,所以咨询是源码编译安装还是RPM二进制包安装?答案:源码编译安装。

5、根据现场源码编译安装会装编译环境以及很多依赖,所以怀疑期间pam包被替换了,所以我问了现场pam模块的版本:

正常设备:
pam-1.4.0-5.oe1.x86_64

问题设备:
pam-1.5.2-2.oe2203.x86_64
pam-devel-1.5.2-2.oe2203.x86_64

到这里,这个问题就找到了,因为在openeuler21.10上装了openeuler22.03的PAM,因为版本不兼容导致的问题。

问题解决

1、现场已经无法得到root权限,只能由网管通过console进入(很可能需要进到单用户模式下)

2、通过yum history undo 命令回滚之前的安装升级操作(如果回滚后,原pam包不能被正确安装,可能需要配置正确的镜像源,手动安装)

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐