忘记Linux密码的解决办法

Author: 任勇 Date: 2000年 第43期

  如果忘记了Linux密码,这时有两种情况,一种是用LILO管理器来启动的,另一种是不通过LILO启动的。
  如果你的系统是通过LILO管理器来启动的,可在LILO启动提示符LILO boot:后输入Linux single,回车后启动Linux系统进入单用户模式,这时,就可以用passwd命令来修改你的密码了,修改完后重新启动系统,就可以使用新的密码了。
  以上方法在一些系统下可行,但在另一些系统下则不行。如果是第二种情况,修改密码就麻烦一些,但经过一些爱好者的反复摸索,发现用以下方法可以清除Linux的密码:用Linux boot软盘启动,当出现LILO boot:提示符时,输入linux mount=/dev/xxxx,其中xxxx为Linux所在的分区,IDE硬盘的设备名为hda,第一分区为hda1,如果你的系统有两个IDE硬盘,第二个为hdb;如果你使用的是SCSI硬盘,则硬盘的设备名为sda。正确输入硬盘的设备及分区号后启动Linux,系统自动将Linux的分区mount到/mnt下,这时,只要进入到/mnt/etc下,用vi命令将passwd文件中root行中的密码去掉,重新引导系统后,在超级用户下执行passwd命令,重新生成一个密码即可。如果你的系统拥有passwd和shadow两个文件,需要修改的密码文件则是/etc下的shadow,它是passwd的一个映象,是真正存放密码的文件。
  如果你的Linux系统是其它版本,不能识别Linux mount=/dev/xxxx,也可使用以下通用方法解决:目前各个版本的Linux都随盘发行有应急引导盘,一般有两张,一张是boot盘,另一张是root盘,关于这两张盘的命名,各个版本基本都差不多,前面几个字符是rescxxxx,后缀是img或gz。我所见到的是:rescboot.img、rescroot.img。找到这两张盘后,使用随盘发行的IMG文件写盘命令rawrite.exe将rescboot.img、rescroot.img两个文件分别写入两张软盘,而后用这两张软盘将Linux引导起来。引导起来后,在超级用户下执行:mount/dev/xxxx/mnt(xxxx的解释同上述)
  #cd/mnt
  vi/mnt/etc/passwd
  将超级用户密码删除,删除方法同上。如果你的系统同时拥有passwd和shadow两个文件,仅修改shadow一个文件即可解决问题。