gphmy 发表于 2006-12-21 19:04:41

root密码丢失的解决方法

常常有些朋友在设定好了linux之后,结果root密码给他忘记了!要重新安装吗?答案是不需要的~。
一般来说有两种方法可以修改root密码:

1. 进入单用户模式修改密码
对于lilo,在启动时输入

代码:
boot: linux single

对于grub, 在启动时输入“e”编辑启动项,在“kernel xxx”行末尾加“single”


代码:
kernel /boot/lfskernel-2.6.8.1 root=/dev/hda2 ro single

启动后root将不会提示密码,输入passwd可以重新设置密码

但是有一些特殊的 init 使得这一方法可能不那么顺利,比如会出现以下提示(或其他古怪信息):


代码:
Give root password for maintenance
(or type Control-D for normal startup)

那么就需要直接使用 bash 而不是系统的 init :


代码:
#对于lilo:
boot: linux init=/bin/bash
对于grub:
kernel /boot/lfskernel-2.6.8.1 root=/dev/hda2 ro init=/bin/bash


启动后会得到一个 root shell , 但硬盘是只读的, 需要重新加载:


代码:
# mount -o remount,rw /
.... 做你想做的事吧, 比如 vi /etc/passwd ....
# mount -o remount,ro /


可以重新启动了



2.:加载系统分区修改密码(适用于启动管理器有密码保护的情况)

可以使用其他linux LiveCD(如Knoppix和RedHat安装盘的rescue模式)启动,加载系统所在的分区:


代码:
mount /dev/hda2 /mnt

然后直接修改/mnt/etc/passwd,清空其中的password项



代码:
chroot /mnt
passwd

设置新密码

sprhawk 发表于 2006-12-30 00:23:48

Re: root密码丢失的解决方法

常常有些朋友在设定好了linux之后,结果root密码给他忘记了!要重新安装吗?答案是不需要的~。
一般来说有两种方法可以修改root密码:

1. 进入单用户模式修改密码
对于lilo,在启动时输入

代码:
boot: linux single

对于grub, 在启动时输入“e”编辑启动项,在“kernel xxx”行末尾加“single”


如果代码:
kernel /boot/lfskernel-2.6.8.1 root=/dev/hda2 ro single

启动后root将不会提示密码,输入passwd可以重新设置密码

但是有一些特殊的 init 使得这一方法可能不那么顺利,比如会出现以下提示(或其他古怪信息):


代码:
Give root password for maintenance
(or type Control-D for normal startup)

那么就需要直接使用 bash 而不是系统的 init :


代码:
#对于lilo:
boot: linux init=/bin/bash
对于grub:
kernel /boot/lfskernel-2.6.8.1 root=/dev/hda2 ro init=/bin/bash


启动后会得到一个 root shell , 但硬盘是只读的, 需要重新加载:


代码:
# mount -o remount,rw /
.... 做你想做的事吧, 比如 vi /etc/passwd ....
# mount -o remount,ro /


可以重新启动了



2.:加载系统分区修改密码(适用于启动管理器有密码保护的情况)

可以使用其他linux LiveCD(如Knoppix和RedHat安装盘的rescue模式)启动,加载系统所在的分区:


代码:
mount /dev/hda2 /mnt

然后直接修改/mnt/etc/passwd,清空其中的password项



代码:
chroot /mnt
passwd

设置新密码
如果这个成功,它应该会比较有用:现在大部分的init都应该使用这机样的方法提高系统安全性吧?

wangptr 发表于 2008-10-23 12:38:47

谢谢啊有机会试试但怎么没有大侠。

593499524 发表于 2013-5-11 20:30:45

有机会试试
页: [1]
查看完整版本: root密码丢失的解决方法