以下文章转自:
http://linux.it.net.cn/m/view.php?aid=8821
最近公司购买的服务器需要维护,当我用原来的ssh账号登录其中一台服务器的root账户的时候,提示Access denied,也就是说密码错了。奇怪的是我没有修改过密码,询问公司其他相关负责人,也都说没有改过。猜测大概是被服务商或者是某黑客修改了。
恰烧饧曳裆堂挥刑峁┲刂妹苈牍δ埽窃诜衿骺刂铺ㄉ咸峁┝藃escue mode(也就是救援模式,或者恢复模式)按钮,可以通过这个按钮让服务器进入rescue mode,再更改root账户密码。
这下难到我了,从来没有用过rescue mode的我在登录到救援模式后,不知道怎么改密码。直接输入passwd其实修改的并非正常模式下的root密码。上网找了半天资料也没有研究出来,而大家推荐的单用户模式则对服务器不适用,因为我们是远程管理,不可能去修改grub引导项。这下可真的卡壳了。
最后通过联系服务商的技术支持,找到了rescue mode下修改root账户密码的完整操作流程,特记录在此,以便今后查阅和提供给需要的网友。由于系统安装的是Ubuntu 10.04 LTS Server,所以暂定为此功能仅在Ubuntu下有效。对于其他Linux发行版,暂时不知道有没有效果,我也没有环境去测试,还望谅解。
首先使用rescue mode的root密码登录系统。然后输入命令:
#mount /dev/sda1 /mnt
将第一块硬盘的第一个分区挂载到/mnt。注意,如果您的硬盘主分区不是sda1,则需要将sda1改为对应的主分区号,不然是无法进行后面的操作的。
(这里补充一下,独服不一定是第一个分区,而应该是你的系统存在的那个分区,假设一块硬盘分了三个分区,这个可以用fdisk -l查看,这三个分区可能是sda1 sda2 sda3,那么,你系统通常不会在sda1,可能会在sda2,第一个分区通常是boot分区,那么这个时候你的命令行应该是
mount /dev/sda2 /mnt
接下来输入:
#chroot /mnt
如果这条命令提示错误(我的这台服务器就不支持这条命令,提示错误),那么使用下面这条命令代替之:
#chroot /mnt /bin/bash
如果这条指令没有出错,那么恭喜你,已经成功获取正常系统下的root权限了,现在你要做的就是输入passwd命令来改密码:
#passwd
输入两次密码后,正常系统的root密码就被成功修改了。之后我们需要退出正常系统root用户,回到救援模式下:
#exit
然后我们卸载掉刚才的挂载:
#umount /mnt
最后重启系统:
#reboot
现在系统就会以正常模式重新启动,然后再次通过ssh连接,输入刚才修改的密码,成功进入系统!
文章评论