• 救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别与联系


    救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别与联系

     

    前天聚餐的时候一航和启飞学长讲到RUCTF中更改root密码要进入单用户模式,我插了一句“有的系统显示的是救援模式”,说完后心里一直很虚。。。(技术上的事还是想好再说)今天查了一下文档,大致弄明白了救援模式(Rescue Mode)、单用户模式(Single-User Mode)、紧急模式(Emergency Mode)的区别了,分享一下;)

    -----------------------------------------------------------------


    1.runlevel:
    一句话:运行级别指的是Linux等类Unix操作系统下不同的运行模式。
    运行级别通常分为7等,分别是从0到6,但如果必要的话也可以更多。运行级别决定了计算机启动后的运行环境,根据Linux Standard Base,标准的运行环境可以分为7个:
    0    Halt    Shuts down the system.
    1    Single-user mode    Mode for administrative tasks.(注意这里,说明系统返回的shell有root权限)
    2    Multi-user mode    Does not configure network interfaces and does not export networks services.
    3    Multi-user mode with networking    Starts the system normally.
    4    Not used/user-definable    For special purposes.
    5    Start the system normally with appropriate display manager (with GUI)    Same as runlevel 3 + display manager.
    6    Reboot    Reboots the system.

    2.什么情况下要进入Rescue/Single-User/Emergency Mode?
    一句话:无法正常由磁盘进入normal user mode(runlevel 3或5)
    例如:
    GRUB被(微软)摧毁了;)
    某些硬件驱动文件损坏(比如nouveau)
    密码忘了

    3.三者的区别(这里参照的是RedHat系列的文档)
    一句话:单用户模式是一个runlevel,我们可以在这里用具有root权限的shell更改root密码。至于怎么进入单用户模式有很多种,例如在磁盘boot文件损害时从其他介质启动(救援模式)。至于紧急模式,则是在init文件都损坏的情况下使用(也具有root权限),此时获得的环境最简单(重启都得靠拔电源)。

    单用户模式:
    在单用户模式,电脑为开机进入runlevel 1,本机档案系统已经被挂载,不过您的网路尚未启动,您可以使用一个系统维护的 shell。单机使用者模式与救援模式不同,它会试着自动挂载档案系统,如果您的档案系统无法被成功挂载,请勿使用单机使用者模式。而且如果系统上的执行层级 1 的设定已经毁损,您也无法使用单机使用者模式。

    救援模式:
    救援模式能让使用者由光碟(或其它开机方法)启动基本的 Red Hat Enterprise Linux 环境;而不是藉由系统硬盘来启动。在正常操作中,Red Hat Enterprise Linux 系统会使用硬盘里的档案来进行所有工作 — 执行程式、储存档案等等。然而,在某些情况下,Red Hat Enterprise Linux 会无法完整存取系统的硬盘。透过使用救援模式,即使您无法由某个硬盘执行 Red Hat Enterprise Linux,您依然能够存取储存在该硬盘上的档案。总之,救援模式就是从其他介质启动(能够自己选择挂载的分区),从而获得一个runlevel(如果按照流程,会进入level1的单用户模式)。

    紧急模式:
    在紧急模式中,您是开机进入尽可能最小的环境中。根目录档案系统将会被挂载为仅能读取,而且将不会做任何的设定。比起单机使用者模式,紧急模式最主要的优点是并不载入 init 档案。因此当 init 档案毁损或无法使用时,您仍然可以挂载档案系统以回复重新安装阶段中遗失的资料。

    注:现在的centos7取消了使用多年的 SystemV 的服务管理方式,也就是说,从这一版开始,已经没有所谓的“执行等级 (run level) ”的概念了。新的管理方法使用的是 systemd 的模式(systemctl而非init),这个模式将很多的服务进行相依性管理。


    -----------------------------------------------------------------

    回到更改密码的问题上来,显然,如果用rescue mode获取环境,需要使用mount和chroot挂载根目录并更换当前根目录后然后使用passwd命令更改密码。如果能直接用单用户模式的环境,则可以直接更改密码。至于紧急模式,不推荐使用(网上有人说的,不清楚),因为很多基础服务未加载,强制重启后可能会有问题。

    所以说,下次有人问忘记了root密码该怎么办,最准确的回答是“找一个能获得root权限shell的mode并将根目录切换到磁盘的根目录下执行passwd命令并注意SElinux上下文的保存”(好吧这有点绕。。),最正确/简单是回答是“单用户模式”。

    参考:
    Runlevel --> https://en.wikipedia.org/wiki/Runlevel
    Linux Standard Base --> https://en.wikipedia.org/wiki/Linux_Standard_Base
    Basic System Recovery --> https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Installation_Guide/ap-rescuemode.html#s1-rescuemode-booting-single

     
  • 相关阅读:
    java中计算两个时间差
    增强for循环用法
    SQLServer类型与Java类型转换问题解决
    有关SQL模糊查询
    js 弹出div窗口 可移动 可关闭 (转)
    登陆sqlserver及修改端口号 (转)
    C#判断IP地址是否合法函数-使用正则表达式-2个 (转)
    c#图像处理入门(-bitmap类和图像像素值获取方法) 转
    MongoDB C#驱动中Query几个方法 (转)
    微信公众帐号自定义菜单创建及事件响应开发教程 附源代码(转)
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/13100511.html
Copyright © 2020-2023  润新知