Linux下root密码丢失解决办法


 

事件开端:

由于早些时候,在配置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,问题解决。

本文出自 “Michael_Feng” 博客

相关内容

    暂无相关文章