linux 本地账号密码无法登陆(shell可以登录),一直返回 登陆的login界面
今天我在我虚拟机测试的时候遇到了一个问题。登陆centos一直是返回login,账号和密码没错,我也换了两个用户。
1.问题描述
我正常的输入用户名和密码
错误提示截图:返回登陆界面,我重新试了另外的oracle用户发现也是一样的返回login
2.错误分析
我百度了一下错误,后来发现了一篇与这个问题有关的文章http://blog.itpub.net/35489/viewspace-620915/,因为我昨天刚用我虚拟机测试安装了oracle.
我发现了原因是因为昨天我安装oracle时候做了修改/etc/pam.d/login文件。 后来查询才知道我加的语句有问题
原来我的语句限制语句有问题:
#session required /lib64/security/pam_limits.so 这是对应64位的,
session required /lib/security/pam_limits.so 这是对应32位的,我出现问题的原因是我用的是32位的语句而我是64位系统
3.解决方法
我查了好久,差点就重装系统后来找到了两种解决办法。
我网上查了资料http://blog.itpub.net/15480802/viewspace-1406088/,发现 pam_securetty.so读取/etc/securrety,设定root用户可以登陆的终端,一般只设置tty而没有pts/0,telnet使用该模块故无法使用root用户登录,而sshd没有使用到该模块故不受限制;
通过这个分析和资料查找,我找到了两个解决办法。
a). 针对电脑可连接ssh crt,且知道ip的
通过ssh crt类的软件远程连接系统,然后更改文件 vi /etc/pam.d/login ,把 session required /lib/security/pam_limits.so 更改为session required /lib64/security/pam_limits.so
(附1:crt连接截图。 刚工作时候我也不会,都没人跟我说,我不会又不好意思问,问了周围人也都不肯认真的告诉我)
(附2: vim编辑器的操作 进入后 按键盘 i 进入文本模式方可编辑,不然命令模式下不可以编辑。 退出文本模式是 esc(键) 然后再按 :(符号,键盘上 shif + ;:键) 然后保存是 输入 wq, 如果做了操作不保存是 q! 。 这个虽然简单,但是如果不知道也尴尬,我就是工作中第一次接触这个不太会的时候被周围同事斥责和嘲笑了。只要肯用心就行。)
如图
第二张方法: 针对练不上网,不能连接SSH crt软件的
此种方法比较笨,就是重启系统,进入linux的但模式 模式。 如何进入单模式系统 http://jingyan.baidu.com/article/7e440953f87f4a2fc0e2ef90.html
此方法还可以应用于找回密码。但是这次这个进入但模式模式重置密码是不管用的,至少我试了重置密码还是不行。
进入单模式模式后,直接 然后更改文件 vi /etc/pam.d/login ,把 session required /lib/security/pam_limits.so 更改为session required /lib64/security/pam_limits.so
附3:如何进入单模式模式简单介绍: 重启系统,然后在登陆界面, 按键盘e进入如下图
选择第二内核,然后 输入1或者 single 并回车,然后 按 b 这样等待一下就进入 单用户模式了,在这个模式下进行修改操作。
4.重新登陆即可正常使用