重置CentOS操作系统root管理员密码
首先要确定服务器是否安装的是CentOS操作系统。如果是再进行下面的操作。
方法一:
1.查看服务器上Linux操作系统版本
如图所示,先在空白处单击鼠标右键,单击“打开终端”菜单,然后在打开的终端中输入如下命令。
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core)
2.启动Linux服务器进入Linux内核编辑界面
[bob@localhost ~]$ reboot
或
[bob@localhost ~]$init 0
重重启Linux系统主机并出现引导界面时,按“e”键进入内核编辑界面,如图所示。
3.在linux16参数这行的最后面追加“rd.break”参数,然后按下“Ctrl + X”组合键来运行修改过的内核程序,如图所示。
4.大约30秒过后,进入系统的紧急救援模式。依次输入以下命令,等待系统重启操作完毕,然后就可以使用新密码newcentos(重新设置的新密码)来登录Linux系统了。命令行的执行效果如图所示。
启动后进入“switch_root:/#”后输入以下命令: 注释:该提示符也被称为“互动式命令环境”
注意:输入passwd后,输入密码和确认密码是不显示的!
switch_root:/# mount –o remount,rw /sysroot
注释:重新挂载/sysroot成可读可写。“-o”为命令选项,含义是挂载选项列表,以英文逗号分隔;“remount”的含义是重新挂载的意思。
为什么要重新挂载系统?
答:开机后的互动式命令环境,并不是正常开机的系统,正常开机系统挂载在/sysboot且挂载成只读,必須重新挂载成可写入,才能修改密码。
switch_root:/# chroot /sysroot
注释:并切换到/sysroot,即进入单用户模式。
sh-4.2# passwd
注释:“passwd”后面不跟用户名,默认就是给“root”用户设置口令。
sh-4.2# touch /.autorelabel
注释:为确保开机时重新设定 SELinux context,必须在根目录下添加隐藏文件.autorelabel
sh-4.2#exit
注释:“exit”命令在此处的意思是退出“chroot”
switch_root:/#reboot
注释:重启Linux系统。
方法二:
1.重启系统
按【e】进入启动文件界面后
2.按【↓】拉到底部
找到linux16这一行
将ro改成rw
在这行最后面加上“init=/bin/sh”
3.按【Ctrl+X】进入“单用户模式”
就会进入下图界面,输入“passwd”修改密码。
4.先输入【touch /.autorelabel】,回车再输入【exec /sbin/init】回车以重启系统
5.等待4-5分钟后,系统开机,就可以输入root的新密码,正常使用系统了。
解释:
为何需要/.autorelabel:系统是没有SELinux 的,而你刚刚更改了/etc/shadow (因为改密码), 所以这个档案的SELinux 安全本文的特性将会被取消!如果你没有让系统于开机时自动的回复SELinux 的安全本文, 你的系统将产生无法登入的问题(在SELinux 为Enforcing 的模式下!)加上/.autorelabel 就是要让系统在开机的时候自动的使用预设的SELinux type 重新写入SELinux 安全本文到每个档案去!。