本文以重置root用户密码为例,讲解一下Linux运维工做中解决通常问题的过程和结果。重置root密码这种问题的结果很简单,重点是解决过程,供新手参考和借鉴,但愿经过此文做为新手能知道平常运维中解决一个问题的过程是怎样的,以及从解决问题的过程当中应该学到什么。html
人的思惟老是会固化的,除非他本身深入地认识到的确须要转变。IT领域中的知识老是在不断变化更新的,须要咱们不停地去“增删改查”本身的小知识库。先前觉得达到某一个目的能够这样作一件事情,可能一小段时间后就须要那样作一件事情。linux
事情通过:shell
昨天一大学同窗(自己能够说是Linux方面的小白)QQ上问我说,本身的Linux虚拟机使用正确的用户名和密码没法登陆到系统,提示用户名和密码不正确。centos
解决通常问题的思路:安全
做为一个去为他人解决问题的人,其思惟轨迹应该是这样的:网络
1.告诉她不要慌,问题老是能解决的,何况这是一个很简单很常见的问题运维
2.若是她动手能力比较强,那么把解决问题的思路告诉她,询问她有没有作过什么特别的操做,帮她找到问题存在的缘由防止相似问题再次发生ide
3.若是她动手能力和解决问题的能力较差,那么能够远程帮她或者直接告诉她有哪些简单的方法能够本身看后就能使用,快速解决问题网站
4.若是不能远程或者必须一步一步教告诉她如何作,那么就须要知道足够多的信息,不论是解决问题的方法仍是去了解她那边的状况:ui
(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。
可是如文首所提到的,每每知识是须要更新,思惟是须要改变的。就第一种最简单有效的方法来讲,RHEL六、7跟之前大不相同,单用户模式下也会要求给出root用户的密码,所以想快速修改密码必须另辟蹊径。
快速解决相似问题的捷径一般是这样的:
1.快速肯定关键词,用Google或者百度(若是你喜欢和信任)搜索关键词,筛选和快速浏览解决问题的文章(要求关键词提炼能力和快速筛选有用信息的能力,这须要积累和经验),凭借本身的经验和感受去有选择的试验
其余须要的附加技能:英语、……
好的关键词举例:
1)Google:resetting root password site:redhat.com 或 rhel resetting root password 或 rhel6 forgot 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
2.若是想使用SELinux,则执行/usr/sbin/load_policy -i命令,执行mount -o remount, rw / 后能够执行passwd命令修改root密码,最后执行exec /sbin/init便可
二,以救援模式为例,在CentOS6中重置root密码方法以下:
注:没必要使用6.7的iso重置6.7系统中的root密码,彻底可使用6.8的iso重置6.7的系统。
使用键盘上的上下箭头选择第3个“Rescue installed system”
网络能够选择不开启,取决于要作什么
下图中选择继续“Continue”,也可使用“Advanced”加载SAN
执行以下命令:
1.chroot /mnt/sysp_w_picpath
2.passwd
3.exit或者Ctrl+D 退出 chroot
4.exit或者Ctrl+D 退出 维护shell
重启系统
其余的办法也有,就不在此一一列举了,能够阅读下面的链接查阅官方文档。
可参考文档:
Red Hat, RHEL6:Basic System Recovery
Red Hat, RHEL7:Changing and Resetting the Root Password
CentOS, General:Resetting a Forgotten Root Password
tag:忘记root密码,重置root密码,解决问题
--end--