Linux忘记root密码怎么办?
时间:2009-04-24 来源:Rockenwind
在机器启动到grub进行操作系统选择时, 对于Redhat linux: 用上下键将光标放在linux系统上,按“e” 在有kernel那一行按“e”,输入“空格 single”,然后回车 按“b”,启动,系统会自动进入单用户模式, 使用passwd root命令,按提示输入新口令 修改口令后,输入reboot 命令重启系统即可 对于SUSE linux: 先按"esc"键,从grub的图形界面转至字符界面 然后,用上下键将光标放在linux系统上,按“e” 在有kernel那一行按“e”,输入“空格 1”,然后回车 按“B”启动,系统会自动进入“runlevel 1”。 然后执行“passwd”,按提示输入新口令 修改完口令后,输入reboot命令重启系统即可。 ---------------------------------------------------------------------
一. lilo
二. grub
另外还有一类,可能是比较老版本的linux,不得而知,方法如下: 第一招:如果你的系统是通过LILO管理器启动的,可以在LILO启动提示符"LILO boot:"后输入"Linux single"(不包括两个双引号),回车后即可启动Linux系统进入单用户模式。这时候你就可以用passwd命令来修改你的密码了。修改完成后重新启动系统就可以使用新的密码登录了。这一着在一些系统下行得通,但是在另一些系统下则行不通。这是你可以试试用第二招来清除Linux的密码。 第二招:用安装系统时制作的boot盘启动,当出现"LILO boot:"提示符时输入"Linux mount =/dev/xxxx" (不包括两个双引号),其中xxxx代表Linux所在的分区。在Linux中,第一个IDE硬盘的设备名是hda,所以第一硬盘的第一分区为hda1,第二分区为hda2,依此类推;第二个IDE硬盘的设备名是hdb,同理,第二硬盘的第一分区为hdb1,第二分区为hdb2,依此类推;如果你使用的是SCSI硬盘,则第一硬盘的设备名是sda,第一硬盘的第一分区为sda1,第二分区为sda2,依此类推;第二个SCSI硬盘的设备名是sdb,则第二硬盘的第一分区为sdb1,第二分区为sdb2,依此类推。正确输入硬盘的设备名及分区号后启动Linux,系统将自动把Linux的分区mount到/mnt下。这时候你只要进入/mnt/etc下,用vi命令打开passwd文件,将root行中的密码去掉,退出并保存文件。然后重新引导系统后,在超级用户下执行password命令,重新生成一个密码即可。这里需要注意一个问题:如果你的系统同时含有passwd和shadow两个文件,则需要修改的密码文件是/mnt/etc下的shadow。因为shadow是passwd的一个映像,是真正存放密码的文件。如果你的Linux系统不能识别"Linux mount =/dev/xxxx"命令也不要紧,我们还有第三招——通用方法来解决它。 第三招:使用应急引导盘。目前各个版本的Linux都带有随盘发行的应急引导盘,一般有两张:一张是boot盘,另一张是root盘。这两张盘一般是以img或gz格式的文件存放在光盘上,文件名各个版本都差不多,主文件名形如rescxxxx,扩展名是.img或.gz。我所使用的是rescboot.img和rescroot.img。找到这两个文件后使用随盘附带的IMG文件写盘工具rawrite.exe将rescboot.img和rescroot.img分别写入两张空白磁盘,然后使用这两张盘引导Linux。启动后在超级用户下执行如下命令:
:mount/dev/xxxx/mnt 然后将超级用户密码删除即可,删除方法同第二招。命令中的xxxx的含义与第二招中的相同。当然,如果你的系统同时含有passwd和shadow两个文件,则只需要修改/mnt/etc下的shadow即可解决问题。 |