在工作中经常会碰一些同事没做好记录,时间久了就忘记自己服务器的管理员密码或者一些同事离职没做好交接导致后来的同事不知道系统管理员密码的情况。所以今天就说说如果碰到这些情况我们该怎么重置原root密码。
本篇我们主要针对三个版本进行root密码的重置:
一、centos 6.X及之前的版本
二、CentOS 7.X的版本
三、Ubuntu18.04的版本(实测Ubuntu16的版本也适用)
第一部分:针对CentOS 6.x及之前的版本
首先,我们需要重启系统,等系统进入grub引导菜单时,找到当前系统的引导项。
接着我们通过方向键选择需要使用的引导系统的内核上,然后按键盘e键,进入到编辑状态。
然后通过上下方向键,选中带有kernel指令的那一行,继续按e键,编辑该行,在该行末尾按空格键,然后添加single
选择kernel这一行
按下空格接着输入single
修改完成之后,按回车键,返回到刚才的界面。
最后按b键,系统开始引导。
这样就切换到单用户模式下,单用户模式与windows的安全模式类似,只启动最基本的系统,网络以及应用服务均不启动。单用户模式启动完毕,系统自动进入命令行状态下,输入passwd,系统提示输入两次新的密码,就可修改密码。
密码修改完成后,只需输入init 3,然后回车,切换到多用户模式下。用root登陆系统即可。
第二部分:CentOS 7.X版本
在CentOS7.0版本之后,linux的机制发生了变化。在系统引导方面,使用grub2代替了之前的grub的引导,init初始化程序也更换成了systemd初始化程序,随之而来,root密码重置的方法也发生了变化。
1. 重启系统,待系统启动到grub2引导菜单时,找到当前系统引导选项,按e键,进入编辑模式。
2.然后找到以linux16开头的那行,把ro修改成rw,再在行末尾按下空格键,输入init=/bin/sh
3.添加完成后,按ctrl+x组合键进入单用户模式。
4.进入单用户模式后,创建.autorelabel
touch /.autorelabel
5.接着就可以执行passwd命令重置密码了。
6. 密码修改完后,需要重启。
直接执行reboot命令已经无效,需要输入全路径命令:
exec /sbin/init
这样就完成了密码重置,正常登陆系统,查看密码是否修改成功。
第三部分:针对Ubuntu18.04版本
系统重启,调出菜单。
通过上下键,选择第二个【Advanced options for Ubuntu】按回车。
选择相应内核的recovery mode模式。
选择最高的Linux内核版本对应的recovery mode模式,即系统和密码恢复模式,如下图的位置,按键盘上的e编辑启动项,不要按回车键,再重申一次,不要按回车键。
修改grub启动选项。
找到recovery momodeset,然后将他删除,替换为quiet splash rw init=/bin/bash,然后按F10。
按下F10后,进入如下界面:
输入passwd root 回车
接着就会提示你输入新的密码
出现如下页面说明修改密码成功
最后重启系统
输入exec /sbin/init