代码改变世界

Linux忘记root密码怎么办?

2013-12-18 11:05  潇湘隐者  阅读(24868)  评论(0编辑  收藏  举报

开篇前言:Linux系统的root账号是非常重要的一个账号,也是权限最大的一个账号,但是有时候忘了root密码怎么办?总不能重装系统吧,这个是下下策,其实Linux系统中,如果忘记了root账号密码,是可以通过进入单用户模式或其它方法修改密码的。当然,具体方式跟Boot Loader、操作系统有关系,GRUB与LILO的实现方式有所不同。

Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。

下面介绍一下Red Hat Enterprise Linux 5下忘记了root密码时,如何修改root账号密码:

强制重启Linux系统,进入如下所示界面,你可以按上下键,选择一个选项后按"e"键

clip_image001

进入下面GRUP界面,选择“kernel /vmlinuz-2.6.18-274....”选项,再按"e"键后,编辑该选项

clip_image002

按向左光标,进入下下图,然后在ro或root前面加上single,按回车键后,再按"b"键启动Linux系统进入单用户模式

clip_image003

clip_image004

如下所示,启动完成后,输入passwd root 修改root账号的密码,重启系统后,问题就解决了。

clip_image005

不同版本的Linux,实现修改root密码的方法有所不同,这里我没法一一实验验证, 下面是我摘自参考资料的。

   1:  
   2: 对于Redhat linux:
   3: 用上下键将光标放在linux系统上,按“e”
   4: 在有kernel那一行按“e”,输入“空格 single”,然后回车
   5: 按“b”,启动,系统会自动进入单用户模式,
   6: 使用passwd root命令,按提示输入新口令
   7: 修改口令后,输入reboot 命令重启系统即可
   8: 对于SUSE linux:
   9: 先按"esc"键,从grub的图形界面转至字符界面
  10: 然后,用上下键将光标放在linux系统上,按“e”
  11: 在有kernel那一行按“e”,输入“空格 1”,然后回车
  12: 按“B”启动,系统会自动进入“runlevel 1”。
  13: 然后执行“passwd”,按提示输入新口令
  14: 修改完口令后,输入reboot命令重启系统即可。
  15: ---------------------------------------------------------------------  
  16: 一. lilo
  17:      1. 在出现 lilo: 提示时键入 linux single
  18:         画面显示 lilo:   linux single
  19:      2. 回车可直接进入linux命令行
  20:      3. #vi /etc/shadow
  21:         将第一行,即以root开头的一行中root:后和下一个:前的内容删除,
  22:         第一行将类似于
  23:         root::......
  24:         保存
  25:      4. #reboot重启,root密码为空
  26: 二. grub
  27:      1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键
  28:      2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键
  29:      3. 修改现在见到的命令行,有两种方法:
  30:         a.加入single,结果如下:
  31:           kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/
  32:         b.在行末加入run level,比如想进入run level 3,结果如下:
  33:           kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/ 3
  34:           由于是忘记root密码,则可进入run level 1,结果如下:
  35:           kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/ 1
  36:      4. 回车返回,然后按b键启动,即可直接进入linux命令行
  37:      5. #vi /etc/shadow
  38:         将第一行,即以root开头的一行中root:后和下一个:前的内容删除,
  39:         第一行将类似于
  40:         root::......
  41:         保存
  42:      6. #reboot重启,root密码为空 
  43:      7. 这是网上的教程,但我实际操作时,老提示不能修改只读文件,于是先用chmod +w shadow命令将shadow文件改为可写。之前
  44:         所作的修改,留下了.shadow.swp文件,使用vi shadow就没有问题了。

 

参考资料:
 
http://shubangjun.blog.163.com/blog/static/15734862201052902832341/
  http://linux.chinaunix.net/techdoc/system/2006/06/22/934808.shtml