一、前言
在Linux中执行代码的过程中,时常需要进入root管理员用户。有时难免存在忘记root密码的情况,一旦忘记root用户密码,就无法执行任何面对整个系统的变更工作。这时可使用以下方式,对root密码进行重置
二、重置root密码
方法一:在引导时重置root密码
1.启动Linux,进入GRUB编辑模式
进入Linux时,会出现引导界面,此时可以通过上下箭头来选择需要启动的模式,按<e>建进入GRUB编辑模式。我们选择含有"rescue"的那行。
2.找到以"linux"开头的那一行,在段尾添加以下命令
rd.break
3.按<Ctrl>+<x>组合键启动系统
会出现以下界面,此时按<ENTER>键,即可输入命令
4.执行以下命令,重新挂载文件系统
mount -o remount,rw /sysroot
5.执行以下命令,改变系统目录为临时挂载目录
chroot /sysroot
6.执行passwd命令,修改root密码
passwd root
执行该命令后,需输入两次新密码
7.在根目录创建相关文件,用于重新标记SELinux环境值
touch /.autorelabel
8.执行exit退出chroot环境,再执行exit重启系统
然后稍等片刻,重启之后root密码就已经改成功了。
方法二:进入Shell引导界面
相比于第一种方法,该方法是动态修改GRUB引导参数。其中部分步骤与第一种方法相同
1.启动Linux,进入GRUB编辑模式
启动Linux,进入GRUB编辑模式,通过上下箭头来选择需要启动的模式,按<e>建进入GRUB编辑模式。同样选择含有"rescue"的那行。
2.找到以"linux"开头的那一行,用"init=/bin/bash"替换"rhgb quiet"
3.按<Ctrl>+<x>组合键启动系统
需耐心等待,当出现'#'时,即可输入命令
此时进入的即是Shell引导界面。该模式不需要root密码而拥有root权限
4.执行以下命令,重新挂载根目录
mount -o remount,rw /
5.执行passwd命令,修改密码
passwd root
此时需输入两次新密码
6.如果系统启动了SELinux,需执行以下命令,否则无法正常启动系统
touch /.autorelabel
7.执行以下命令启动系统
exec /sbin/init或exec /sbin/erboot
重启之后,我们的root密码就重置成功了。
三、设置进入默认启动项的等待时间
当进入Linux引导界面,进行选择操作系统时,会发现进入从操作系统的等待时间太短,自动进入操作系统,未进入GRUB编辑模式。此时我们可通过修改/etc/default/grub配置,来调节等待时间。
1.进入/etc/default/grub配置
2.修改以下配置
将开头"GRUB_TIMEOUT=5"命令中的"5"修改为"-1"。"-1"表示启动时需手动确认。
3.修改完后,需执行grub2-mkconfig命令重新生成grub.cfg文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
再重启reboot即可生效
四、设置GRUB密码
以上重置root密码的两种方式,虽然很好的解决了我们root密码的问题。但其并不具备安全性,任何人都可以轻易的通过这种方式来重置你的root密码,并修改你的配置文件。这时我们就需要设置GRUB密码,其方法是修改GRUB配置文件,设置密码。
GRUB密码的设置通常是为了增强系统的安全性,防止未经授权的访问。接下来,我们来给root密码加密,增加其安全性。
1.编辑/etc/grub.d/00_header文件
2.在该文件末尾添加以下内容后,保存该文件
注:该密码不是root密码,是进入GRUB编辑模式所需要的密码。即给重置root密码上了一把锁
3.执行grub2-mkconfig命令,重新生成grub.cfg文件
4.重启系统,在GRUB开始界面中按<e>键,进入GRUB编辑模式
此时,则需要我们输入用户名和密码
以上设置的为明文密码,用户可进入/etc/grub.d/00_header查看该密码。此时,我们还可以对该密码进行加密
5.使用工具grub2-mkpasswd-pbkdf2生成加密密码
注:此时需要输入明文密码两次
6.将/etc/grub.d/00_header文件password语句中的密码更换为上述以"grub.pbkdf2.sha"开头的密文
其中,需要用"password_pbkdf2"替换"password admin"
7.执行grub2-mkconfig命令,重新生成grub.cfg文件
五、小结
当我们忘记root密码时,可以通过以上两种方式,以非root用户的身份重置root密码。同时,这也意味着他人也可以随意更改root密码。因此,我们需要设置GRUB密码,对其密码加密上锁,确保更改root密码的安全性。