linux redhat Centos debian root密码丢失的解决方法
有两种方法可以修改root密码:
1. 进入单用户模式修改密码
对于lilo,在启动时输入
代码:
boot: linux single
对于grub(通常现在系统都是用这个), 在系统启动时按键盘“e”编辑启动项,在“kernel xxx”行末尾加一个空格 single
然后回车按键盘b
如下命令:
kernel /boot/lfskernel-2.6.8.1 root=/dev/hda2 ro single
启动后root将不会提示密码,输入命令
passwd root 可以重新设置密码
但是有一些特殊的 init 使得这一方法可能不那么顺利,比如会出现以下提示(或其他古怪信息):
代码:
Give root password for maintenance
(or type Control-D for normal startup)
那么就需要直接使用 bash 而不是系统的 init :
代码:
#对于lilo:
boot: linux init=/bin/bash
对于grub:(通常系统都是用这个)
在系统启动里,菜单项后面加入init=/bin/bash把原
kernel /boot/lfskernel-2.6.8.1 root=/dev/hda2 ro quiet
修改换成下面的命令:
kernel /boot/lfskernel-2.6.8.1 root=/dev/hda2 ro init=/bin/bash
启动后会得到一个 root shell , 但硬盘是只读的, 需要重新加载:
代码:
# mount -o remount,rw /
.... 做你想做的事吧, 比如 vi /etc/passwd ....
.... 做你想做的事吧, 比如vi /etc/stab,将你修改错的分区修复回来。
# mount -o remount,ro /
或直接输入破解root密码
passwd root 可以重新设置密码
可以重新启动了
2.:加载系统分区修改密码(适用于启动管理器有密码保护的情况)
可以使用其他linux LiveCD(如Knoppix和RedHat安装盘的rescue模式)启动,加载系统所在的分区:
代码:
mount /dev/hda2 /mnt
然后直接修改/mnt/etc/passwd,清空其中的password项
或
代码:
chroot /mnt
passwd
设置新密码