使用linux  for x86_64。在安装Oracle RAC后,本地终端无法登陆。在本地输入用户名和密码登陆,回车后,会重新返回初始登陆界面。这时,通过远程SSH方式访问,从后台日志可发现类似的报错:

引用
Oct 27 23:47:40 localhost login: PAM unable to dlopen(/lib/security/pam_limits.so)
Oct 27 23:47:40 localhost login: PAM [error: /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32]
Oct 27 23:47:40 localhost login: PAM adding faulty module: /lib/security/pam_limits.so
Oct 27 23:47:47 localhost login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Oct 27 23:47:47 localhost login: Module is unknown

经排查,故障原因是因为PAM配置文件中,调用了错误的链接库导致的。

问题原因,是在安装Oracle RAC 的OC4J后,自动修改了/etc/pam.d/login文件,在其中添加了以下一行引起的:
引用
session required /lib/security/pam_limits.so

这对于x86 环境是正确的,但对于x86_64环境,该链接库位置是错误的,正确的位置应该是/lib64/security目录下。

解决方法:
修改/etc/pam.d/login文件,把:
引用
/lib/security/pam_limits.so

修改为:
引用
/lib64/security/pam_limits.so

故障解决。
※ 修改前,可先确认/lib64/security/pam_limits.so 文件是否存在。