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
设置新密码
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都应该使用这机样的方法提高系统安全性吧? 谢谢啊有机会试试但怎么没有大侠。 有机会试试
页:
[1]