本文以重置root用户密码为例,讲解一下Linux运维工作中解决一般问题的过程和结果。重置root密码这种问题的结果很简单,重点是解决过程,供新手参考和借鉴,希望通过此文作为新手能知道日常运维中解决一个问题的过程是怎样的,以及从解决问题的过程中应该学到什么。

人的思维总是会固化的,除非他自己深刻地认识到的确需要转变。IT领域中的知识总是在不断变化更新的,需要我们不停地去“增删改查”自己的小知识库。先前以为达到某一个目的可以这样做一件事情,可能一小段时间后就需要那样做一件事情。

事情经过:

昨天一大学同学(本身可以说是Linux方面的小白)QQ上问我说,自己的Linux虚拟机使用正确的用户名和密码无法登录到系统,提示用户名和密码不正确。

解决一般问题的思路:

作为一个去为他人解决问题的人,其思维轨迹应该是这样的:

1.告诉她不要慌,问题总是能解决的,况且这是一个很简单很常见的问题

2.如果她动手能力比较强,那么把解决问题的思路告诉她,询问她有没有做过什么特别的操作,帮她找到问题存在的原因防止类似问题再次发生

3.如果她动手能力和解决问题的能力较差,那么可以远程帮她或者直接告诉她有哪些简单的方法可以自己看后就能使用,快速解决问题

4.如果不能远程或者必须一步一步教告诉她如何做,那么就需要知道足够多的信息,不管是解决问题的方法还是去了解她那边的情况:

(Remember:你可能是在为傻子解决问题)

1)了解情况:问题是什么,需求是什么,问题的背景如何,了解此问题的严重性(紧急重要)?

2)收集信息:当前运行状况如何,明确是一个怎样的情况,什么系统,运行环境是怎样的?

3)继续询问和分析:问题是什么时候发生的,如何发生的,做过那些操作?

4)解决过程:该如何帮助其解决?步骤1,2,3……备份、责任、认真、心怀敬畏、平常心……

4)遭遇和预测异常:如果解决不了,该如何去做?寻找Plan B,预测最糟糕的结果

4)总结分享:告知以后该怎么做,如何预防类似问题

解决此问题的思路:

按照惯有的知识,通常忘记root密码是一件非常简单的事情,比如1.最简单的方法是:进入单用户模式,直接修改(了解其中的条件限制,balabala);2.复杂有效的方法:没有安全的系统,使用livecd、livedvd等iso镜像或者安装光盘(注意版本和位数,否则易遭遇segmentation fault)中rescue模式(救援模式使用起来要比livecd方便),chroot后执行passwd命令或者直接修改/etc/shadow文件,云云。

注:救援模式(Rescue Model)存在于DVD和Minimal版本中,所以通常使用Minimal iso即可,不必非得用下载DVD的iso。

但是如文首所提到的,往往知识是需要更新,思维是需要改变的。就第一种最简单有效的方法来说,RHEL6、7跟以前大不相同,单用户模式下也会要求给出root用户的密码,因此想快速修改密码必须另辟蹊径。

快速解决类似问题的捷径通常是这样的:

1.快速确定关键词,用Google或者百度(如果你喜欢和信任)搜索关键词,筛选和快速浏览解决问题的文章(要求关键词提炼能力和快速筛选有用信息的能力,这需要积累和经验),凭借自己的经验和感觉去有选择的试验

其他需要的附加技能:英语、……

好的关键词举例:

1)Google:resetting root password site:redhat.com 或 rhel resetting root password 或 rhel6forgot the root password.

2)百度:RHEL6 重置root密码 或 RHEL6忘记root密码

2.如果不幸运,搜索引擎没有任何帮助,那么官方网站(特别是官方文档、手册等)可能是一种快速解决问题的办法

重置root用户密码是Linux日常管理使用中的一件很常见的管理性任务,因此官方文档是解决问题最快的地方。虽然查找官方文档需要对官方文档的编排和分类比较熟悉,但能保证文档的权威性。

有时通过某种方法行不通时,可能有别的原因,需要再排查排查,不要轻易放弃,多试几次或者换个思路就会成功。某种原因可能在Bug和Wiki页面上指出,比如RHEL/CentOS6.8以前SELinux的某个bug会导致root密码无法重置。

几个建议:

1.建议除非特殊需要,支持64位的硬件应当选择安装64位的Linux。

2.及时安装更新,

3.安装和使用Linux时遵循标准,不要太个性化

4.不要将所有鸡蛋放在一个篮子里,经常备份关键数据

5.使用虚拟化和Docker技术

重置root密码方法:

第一种方法适用于7,第二种方法适用于6

一,以RHEL 7(7.3)为例,列举一个典型的方法:

1.打开系统电源,在GRUB2启动界面出现时按下e编辑,删除linux6或linuxefi对应行上的rhgb和quiet,在后面添加 init=/bin/sh,按下Ctrl+x,启动Linux

Red Hat Enterprise Linux 7 64-2017-03-03-10-11-23

Red Hat Enterprise Linux 7 64-2017-03-03-10-11-46

2.如果想使用SELinux,则执行/usr/sbin/load_policy -i命令,执行mount -o remount,rw / 后可以执行passwd命令修改root密码,最后执行exec /sbin/init即可

Red Hat Enterprise Linux 7 64-2017-03-03-10-15-37

Red Hat Enterprise Linux 7 64-2017-03-03-10-15-56

二,以救援模式为例,在CentOS6中重置root密码方法如下:

注:不必使用6.7的iso重置6.7系统中的root密码,完全可以使用6.8的iso重置6.7的系统。

使用键盘上的上下箭头选择第3个“Rescue installed system”

centos6_Docker-2017-03-03-15-20-35

网络可以选择不开启,取决于要做什么

centos6_Docker-2017-03-03-15-25-32

centos6_Docker-2017-03-03-15-25-43

centos6_Docker-2017-03-03-15-25-52

下图中选择继续“Continue”,也可以使用“Advanced”加载SAN

centos6_Docker-2017-03-03-15-26-20

centos6_Docker-2017-03-03-15-26-28

centos6_Docker-2017-03-03-15-26-31

centos6_Docker-2017-03-03-15-26-35

执行如下命令:

1.chroot /mnt/sysimage

2.passwd

3.exit或者Ctrl+D 退出 chroot

4.exit或者Ctrl+D 退出 维护shell

centos6_Docker-2017-03-03-15-27-12

重启系统

centos6_Docker-2017-03-03-15-27-25

其他的办法也有,就不在此一一列举了,可以阅读下面的连接查阅官方文档。

可参考文档:

  1. Red Hat, RHEL6:Basic System Recovery

  2. Red Hat, RHEL7:Changing and Resetting the Root Password

  3. CentOS, General:Resetting a Forgotten Root Password

tag:忘记root密码,重置root密码,解决问题

--end--

HEL/CentOS 6/7重置root用户密码――方法与过程的更多相关文章

  1. macos – 运行brew命令充满了’同意Xcode / iOS许可证需要管理员权限,请通过sudo以root身份重新运行.’

    所以我跑了:如果滚动到底部,可以输入“同意”,然后就可以了.

  2. ios – 仅适用于iPad的Settings.bundle?

    我有一种情况需要通过设置应用程序为我的应用程序提供一个设置.我的应用程序是通用的,但这个特殊的设置只在iPad上有意义,所以我只希望我的应用程序显示在iPad上的设置中.这可能吗?

  3. ios – Swift 4设置捆绑,获取默认值

    我创建了一个包含大约8个切换开关的设置包.我想要做的是从设置包中获取默认值.目前我现在有这两种方法:我在viewDidLoad中调用这些方法然而,这并没有得到我的默认值.如果我关闭应用程序,打开设置,调整设置并重新打开应用程序,这会产生正确的值.有没有获得默认设置?

  4. Swift调用OC和C

    Swift文件:main.swiftOC文件:Root.hRoot.mC函数文件:Fun.c桥接文件:工程名称-Bridging-Header.h

  5. OC调用Swift

    修改main.m文件OC文件:Root.hRoot.mSwift文件:Person.swift

  6. swift 跳到系统设置界面

    首先需要设置一下:跳转到系统的设置页主页,在iOS8.0的时候,Apple出了这么个玩意UIApplicationopenSettingsURLString,可以跳转到系统设置主页参考:http://www.jianshu.com/p/580d84dda738http://www.jianshu.com/p/8e354e684e8a

  7. android – 以编程方式捕获网络流量(无根)

    我正在尝试查找资源或库,这些资源或库可以允许我以编程方式捕获设备的所有网络数据包的流量,无论是来自wifi还是移动网络.我相信没有必要成为sharkforroot会请求这种混杂模式的root用户,因为Play商店有thisapp可以捕获所有网络流量而不需要root.我根本无法弄清楚如何做同样的事情.我的问题是:这个应用程序是如何实现此捕获的?

  8. 如何在Android中附加XML中的标签?

    我想将一些内容写入XML文件.为此我创建了一个XML文件和带有元素,属性和值的写标签,其中包含以下数据:如果我想添加一个带有新元素,新属性等的新标签,我会在之前使用标签修改标签的位置输入元素.如何将新标签附加到先前附加的标签?解决方法看一下thislink.它应该让您了解如何向XML添加节点.这是一个片段.

  9. android – 如何在root设备上使用文件资源管理器?

    在Eclipse的文件资源管理器上查看我的root设备上的文件需要做什么?>P.S.adbpull有效,但我希望能够使用File资源管理器也是.>P.S.打开USB存储不会帮助文件浏览器.解决方法DDMS中的文件浏览器可以与真实设备一起使用.只使用独立的一个,而不是Eclipse插件.从命令行输入ddms.bat,然后选择(真实)设备,然后选择Device>菜单中的文件资源管理器:

  10. Android KitKat:Snackbar不在屏幕的底部

    我在我的应用中添加了Snackbar.问题是在API19中它不在屏幕的底部.在API21中没关系.这是我的布局而我的OnCreate你有任何想法如何解决它?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部