今天安装linux 5.3 x86_64 + oracle10G,安装之后可以正常使用,ssh、vnc等使用正常。但是后来无意发现在shell模式下不能在本机登陆,而在xWindow下可以正常登陆。
症状描述如下:
用root(或其他任意帐户)登陆,如果密码错误,提示:login incurrect,然后在下面一行显示登陆shell,这种显示是正常的;
如果用户名、密码正确,系统不显示任何提示信息,直接屏幕一闪,在屏幕的开始处显示登陆shell,就像刚刚启动完电脑一样!
怪了!
刚才开怀疑是修改系统编码不当的问题,于是把/etc/sysconfig/i18n、/etc/rc.d/rc.local中的修改都修改回去,没有任何改观。然后上网查资料发现是64位操作系统下文件配置不正确的原因,摘引如下:
安装oracle过程中,一般的安装文档中都会提到要设置/etc/security/limits.conf和/etc/pam.d/login参数文件来限制oracle服务器可以打开的文件数、进程数等等资源的限制,于是会需要在/etc/pam.d/login 文件中添加session required /lib/security/pam_limits.so一行内容来实现/etc/security/limits.conf中定义的各项限制。
此机器使用的是64位的操作系统,/lib/security/pam_limits.so文件是32位的,应该用/lib64/security/pam_limits.so文件来代替,否则在登陆的时候找不到这个文件,就会出现本机不能登陆的情况。
解决方法:
vi /etc/pam.d/login
修改
“session required /lib/security/pam_limits.so”
为
“session required /lib64/security/pam_limits.so”
即可,修改无需重启,立即生效。
参考:
http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105e8d35450186603eddd0027fa3c80ed1230b564711bfec613f52599283616202ab4c41ecf737773c0034f2c688de4583e0ce6f659f2745676c855662a40eaebb5155b137e429feae69f0caf025e3dec5d2af4322cc44730b97f1fb4d7013dd1ef50340e3b1e93e&p=c3769a4084dd05ff57ea933f5a42&user=baidu