操作系统:red hat 5.6 x64

数据库:oracle 11.2.0.1.0

 

    最近,为单位安装了一套oracle数据库供测试使用,在安装完之后,设置服务器默认启动界面为字符界面,重启,输入用户名和密码后又调回了登录界面,尝试使用oracle用户,也无法正常登录。

    重启,用单用户模式登录到linux,检查系统日志

vi /var/log/secure

发现以下错误信息:

 

Jul 28 22:05:49 test login: PAM unable to dlopen(/lib/security/pam_limits.so)
Jul 28 22:05:49 test login: PAM [error: /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32]
Jul 28 22:05:49 test login: PAM adding faulty module: /lib/security/pam_limits.so
Jul 28 22:05:51 test login: pam_unix(login:session): session opened for user root by (uid=0)
Jul 28 22:05:51 test login: Module is unknown
Jul 28 22:05:55 test login: PAM unable to dlopen(/lib/security/pam_limits.so)
Jul 28 22:05:55 test login: PAM [error: /lib/security/pam_limits.so: wrong ELF class: ELFCLASS32]
Jul 28 22:05:55 test login: PAM adding faulty module: /lib/security/pam_limits.so
Jul 28 22:05:57 test login: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Jul 28 22:05:57 test login: Module is unknown

 

说是/lib/security/pam_limits.so模块有问题,想起在安装oracle时,曾修改过登录限制的配置。配置文件如下:

/etc/pam.d/login

配置内容为:
session required /lib/security/pam_limits.so
session required pam_limits.so

 

该配置在linux 32位系统下没有问题,可现在安装的是linux 64位的操作系统,那么就应该用64位的模块,安装时太粗心,没有主意到这个细节。修改配置如下:

vi /etc/pam.d/login

将配置改为:
session required /lib64/security/pam_limits.so
session required pam_limits.so

修改完,重启系统,登录正常。