【Linux】CentOS 7 忘记root密码,单用户模式重置密码。
当我们忘记root用户密码时,可以通过重启系统,进入单用户模式,来重置root密码。
·
目录
方法一:
1.首先重启系统
#进入启动界面内之后在启动选项按“e”进入编辑模式。
2.进入编辑模式进行编辑
#进入编辑模式后会看到这些信息。找到“Linux16”开头的行,在 Linux16 的行尾空格后添加“rd.break”
#添加完成之后,只需要按crtl+x 即可。(按照修改后的设置启动)
3.进入微型系统,获取shell
4.查看挂载信息
#在启动之后会发现我们获取了一个shell,可以正常使用一部分命令了。但同时我们也会发现,当前系统中的数据和我们之前系统中的数据并不一致(某些之前系统上的文件当前都是见不到的)。现在我们查看一下挂载信息,看是否正常。
#我们通过挂载信息会发现,实际上我们原有的系统被挂载在了/sysroot 目录下了,并且是不具备 rw 读写权限的。
mount | grep root
5.重新挂载,使其拥有读写权限。
mount -o remount,rw /dev/mapper/centos-root /sysroot/
6.切换系统环境
chroot /sysroot/
#chroot 命令用于切换根目录,在切换根目录之前,根分区存在于/sysroot 中,切换之后当前使用的根目录就是我们之前正常登录系统所使用的根目录。
7.修改密码
passwd root #直接使用passwd 命令对用户密码进行修改。
8.touch隐藏文件
touch /.autorelabe
#在修改之后需要touch 一个隐藏文件.autorelabel,因为在rd.break 环境下 SELinux 是不生效的。在不生效的情况下我们修改了用户的密码,也就是修改了/etc/shadow文件,所以密码文件的安全上下文的特性会被取消。如果没有让系统在启动时自动恢复 SELinux 的安全上下文,系统会报错“无法登录”,所以 SELinux 在 Enforcing模式下的时候(如在 disabled 模式下则不用),在根目录下 touch 隐藏文件 autorelabel 会让系统在重启时以 SELinux 默认类型重新写入SELinux 安全上下文。
9.恢复系统环境,重启系统
exit
reboot
10.密码修改完成,重新登陆系统
方法二(新版简便):
1.进入编辑模式
找到“Linux16”开头的行,删除参数至“ro”,将 ro 改为 rw,再添加 rd.break,curl+x 启动。
2.进入单用户xshell模式
3.切换系统环境
chroot /sysroot/
4.更改root密码
5.继续启动环境
连续两次 exit 退出系统,即可恢复系统启动。
更多推荐
已为社区贡献1条内容
所有评论(0)