前天聚餐的时候一航和启飞学长讲到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

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

  1. centos单用户 救援 运行级别 yum,单用户模式,救援模式,inittab :启动级别 e2fsck wetty mingetty 物理终端 /dev/console 虚拟终端 /dev/tty(0,6) 模拟终端 /dev/pts/# grub-md5-crypt 给grub加密码 initrd 第二节课

    centos单用户 救援 运行级别  yum,单用户模式,救援模式,inittab :启动级别  e2fsck  wetty  mingetty  物理终端 /dev/console  虚拟终端 /d ...

  2. Linux系统救援模式应用:单用户模式找回密码

    利用Linux系统救援模式找回密码 方法一: 开机时手要快按任意键,因为默认时间5s grub菜单,只有一个内核,没什么好上下选的,按e键.升级了系统或安装了Xen虚拟化后,就会有多个显示. 接下来显 ...

  3. CentOS 7 单用户模式+救援模式

    CentOS 7 单用户模式+救援模式 CentOS 7 单用户模式+救援模式.有时候大家可能会忘记自己的root密码,或者错误(命令输入错误,命令位置输入有误等)编辑了一个/etc目录下的核心文件导 ...

  4. linux单用户模式

    linux单用户模式 2014年11月11日 17:18 在grub上相应要启动的内核上按“e”. 进入下一界面,继续按“e”. 在进入文本界面后,输入“single”回车. 进入grub界面后,按“ ...

  5. centos单用户模式修改ROOT密码

    首先启动的时候的时候,需要进入单用户模式(进入单用户模式的前提是系统引导器能正常工作),单用户模式是不需要输入密码,并且(进入单用户模式,没有开启网络服务,不支持远程连接 )网上说可以通过GRUB ( ...

  6. centos6.5单用户模式拯救系统

    系统出现启动异常,某个软件卡住了不能启动(按Fx键可以查看是哪个软件卡住了),需要进入单用户模式或修复模式对系统进行管理. 使用单用户模式有一个前提,只要系统引导器(grub)能正常工作,否则要进行系 ...

  7. lesson - 2 yum /单用户/救援模式/Linux 启动

    课程大纲:1.  yum使用yum 是一个在线安装软件包的工具,它可以帮我们解决软件包的依赖,这个日后会详细介绍.我们介绍了以下几个用法:yum list    这个命令可以列出所有安装过和未安装的软 ...

  8. Linux系统CentOS进入单用户模式和救援模式详解

    一.概述 目前在运维日常工作中,经常会遇到服务器异常断电.忘记root密码.系统引导文件损坏无法进入系统等等操作系统层面的问题,给运维带来诸多不便,现将上述现象的解决方法和大家分享一下,本次主要以Ce ...

  9. 单用户模式&救援模式&克隆虚拟机&Linux机器相互登录

    1.13 单用户模式 1.14 救援模式 1.15 克隆虚拟机 1.16 Linux机器相互登录 1.单用户模式 关机:init 0 .poweroff 重启:init 6 .reboot 关机:in ...

随机推荐

  1. 全新的.NET解释器 - Mono已经到来

    Mono通过新的运行代码方式,完善了自己的即时编译器和静态编译器. 2001年,Mono项目正式开始,Mono开发团队为.NET指令集编写了一个解释器,用于在Linux上引导一个自托管的.NET开发环 ...

  2. python定时利用QQ邮件发送天气预报

    大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.c ...

  3. Visual Studio 2017开发环境的安装

    Visual Studio 2017是微软为了配合.NET战略推出的IDE开发环境,同时也是目前开发C#程序最新的工具,本节以Visual Studio 2017社区版的安装为例讲解具体的安装步骤. ...

  4. unity android相互调用

    简介 有一些手机功能,Unity没有提供相应的接口,例如震动,例如不锁屏,例如GPS,例如... 有太多的特殊功能Unity都没有提供接口,这时候,我们就需要通过使用Android原生的ADT编辑器去 ...

  5. 《java.util.concurrent 包源码阅读》11 线程池系列之ThreadPoolExecutor 第一部分

    先来看ThreadPoolExecutor的execute方法,这个方法能体现出一个Task被加入到线程池之后都发生了什么: public void execute(Runnable command) ...

  6. 数细胞-swust oj

    数细胞(0964) 一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数.编程需要用到的队列及其相关函数已经实现,你只需要完 ...

  7. 缓存与ABP Redis Cache

    缓存与ABP Redis Cache 为什么要用缓存 为什么要用缓存呢,说缓存之前先说使用缓存的优点. 减少寄宿服务器的往返调用(round-trips). 如果缓存在客户端或是代理,将减少对服务器的 ...

  8. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

  9. VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

    VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统.但是,无法执行 64 位操作. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态 解决办法: 下载LeoM ...

  10. 了解web及网络基础

    了解web及网络基础 以下内容简单的说明了一下TCP/IP协议族中HTTP协议.DNS服务.IP协议的一些概念和关系.笔者只是对知识点进行了总结,仅供参考: ) 转载请注明出处:了解web及网络基础 ...