最近在拜读《Unix & Linux 大学教程》这本书,这本书写得不错。关于Unix和Linux比较介绍比较深入根源,内容也比较详细,很值得去拜读。
       在书中的附录中有一介绍忘记root口令的处理方法,我感觉很不错想分享给大家,希望能给大家带来帮助。
       当使用自己的Unix或Linux系统时,您自己就是系统管理员,这意味着如果出现问题的话,没有其他人帮助您。如果忘记了root的口令该怎么办呢?
下面给出几种曲型Linux系统中的解决方法,适用于大部分的现代版的Linux。
一. 如果您有sudo的权限,那么您可以使用下述命令快速地改变root口令:
  sudo passwd root
二. 如果没有sudo权限,或者如果您系统被配置成不允许sudo改变root口令,那么您将发现改变root口令需要一些更精巧的措施。
     通常的策略就是通过一个Linux光盘启动系统,接管计算机的管理。然后挂载硬盘上的主(根)文件系统,一旦完成这一步,就可以使用该挂载点作为
    文件系统的根,然后使用标准的passwd程序更改root口令。
  1.从Live CD引导Linux。
  2.按<Ctrl-Alt-F1>组合键,进入命令行。
  3.改变到超级用户:
    sudo su
  4.启动分区表编辑器:
    parted (如果系统没有parted,则需要使用另一种分区编辑器,例如fdisk、cfdisk或sfdisk。)
  5.在parted中,显示主硬盘的分区信息:
    print

  6.记下包含Linux系统的硬盘的设备名称,例如/dev/hda或/dev/sda。
  7.记下主Linux分区号,例如:分区号2。
     如果不能确定哪个是根分区,可以查看ext3、ext2 reiserfs或xfs类型的文件系统。如果这样的分区不止一个,则记下所有的号码。
  8.停止parted程序。
    quit  现在应该会返回到shell提示。

  9.为硬盘上的文件系统创建一个挂载点(在这个例子中,称之为harley):
    mkdir /mnt/harley
  10.通过使用由parted程序所获得的设备名和分区号,挂载硬盘上的根文件系统。例如,如果设备名是/dev/hda,分区号是2,则使用的命令为:
    mount /dev/hda2 /mnt/harley
       如果在第7步中,发现不止一个可能的分区,则选择其中一个分区。如果选择的分区号不正确,再尝试另一个。
  11.确认已经挂载了根分区。为测试这一点,可以查看影子文件(/etc/shadow)是否在这个分区中,影子文件中包含有所需要的口令:
    ls /mnt/harley/etc/shadow
    如果没有口令文件,则挂载的不是根分区。返回到第(10)步,试着挂载另一个分区。继续这两步,直至成功挂载了根分区。
  12.改变硬盘系统上的root口令。
       有许多方法可以完成这一步。最简单的方法就是使用新挂载点作为文件系统的根运行passwd命令。这只需一条简单命令:
    chroot /mnt/charley passwd
   这个chroot(change root,改变佷)命令意味着:“临时将文件树的根改变为/mnt/harley,然后执行命令passwd。”
      因为已经位于超级用户模式,所以使用passwd命令将改变root口令。而且因为文件系统的根已经临时改变为/mntharley,所以使用的口令文件是
      位于硬盘上的口令文件(/mnt/harley/etc/shadow)。
      通过这种方式,就能够改变硬盘上系统的root口令。
  13.移除CD,从硬盘重新启动系统,测试并确保口令已经被正确改变。

最新文章

  1. TestNG 与 Junit的比较
  2. 微信JSSDK javascript 开发 代码片段,仅供参考
  3. codeforces Expecting Trouble
  4. Unity3D 降低IL2CPP编译可执行文件大小
  5. paip.指针 引用 c++ java的使用总结.
  6. ios下Safari无法触发click事件的处理
  7. jQuery1.11源码分析(5)-----Sizzle编译和过滤阶段[原创]
  8. mac安装nginx
  9. 【译】Spark官方文档——Spark Configuration(Spark配置)
  10. Qt浅谈之三十九圆形进度条(已经有50篇了)
  11. Android中ListView分页加载数据
  12. 使用.NET框架、Web service实现Android的文件上传(二)
  13. js获取网页的各种高度
  14. SpringMvc文件资源防止被外链链接
  15. image-to-image translation with conditional adversarial networks文献笔记
  16. hive、sqoop、MySQL间的数据传递
  17. cJSON填坑记
  18. Kali2.0的简单使用--开启root用户登录
  19. MySql利用mysqldump导出/导入数据库表数据
  20. 葡萄城报表 SP2 新特性(1)— 单元格智能合并

热门文章

  1. ffmpeg 的tutorial
  2. 将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)
  3. 沈晓军 / LarvaFrame - 代码托管 - 开源中国社区
  4. NSArray和NSMutableArray的详解
  5. C#基础知识回顾-- 反射(1)
  6. &lt;property name=&quot;current_session_context_class&quot;&gt;thread&lt;/property&gt; 属性
  7. Eclipse+Maven构建web项目及部署时Maven lib依赖问题的解决
  8. nape.dynamics.InteractionFilter
  9. [Bootstrap] 5. Button and well
  10. Javascript call与apply记录