事件开端:
由于早些时候,在配置Tomcat的和java的环境变量的时候,出现了点小问题。后来由于几个误操作,一个注销,机器卡在那了。随即,按下电源键以强制关机。但是重启以普通用户登录后,发现使用 su 命令登录后,输入正确的密码却提示无法登录。提示密码不正确
我的尝试:
在光驱中装入安装光盘,重启,进入rescue模式的shell下面,由于我用的Linux版本是fedora 14的版本,因而进入shell后执行如下命令,即可获得root权限
$ chroot /mnt/sysimage
使用vi 编辑器 ,执行如下命令
$ vi /etc/profile
在第一行或者你的root为首单词的一行中,将第二个冒号与第三个冒号之间的字符串删除,并保存退出(按下Esc,按下冒号,输入wq,回车)
$ passwd root #接下来,输入两次密码,提示修改成功
重新启动后,用普通进入终端,并是有su命令,仍无法用正确密码登录,遂再查google
解决办法如下 :
使用安装光盘进入shell之后,使用上面提到的方法获得root权限后,增加一个用户,并修改/etc/profile文件中以新增用户名做为开头的行中,用于标识用户组的两个参数,改成与root相同的参数(0:0),赋予该帐号超级用户的权限
查看/etc下passw和shadow权限。
$ ls -l /etc/{passwd,shadow}
-rw------- 1 root root 2434 03-05 19:52 /etc/passwd
-rw------- 1 root root 1700 03-06 09:49 /etc/shadow
发现普通用户没有读passwd文件的权限。然后修改passwd权限:
$ chmod 644 /etc/passwd
错误原因 :
是/bin/su文件被取消了s位,所以解决方法是 chmod a+s /bin/su
#ls -l /bin/su
-rwxr-xr-x 1 root root 39948 03-05 14:38 /bin/su
#chmod a+s /bin/su
#ls -l /bin/su
-rwsr-sr-x 1 root root 39948 03-05 14:38 /bin/su
再重新登录root,问题解决。