root用户密码忘记了?!!!怎么办!!!
- 在Linux系统中,root密码是系统管理员权限的凭证。 如果忘记了root密码,就无法以管理员身份登录系统,这可能会对系统安全和正常运行造成影响。
经过多方查阅,了解到可以通过GRUB2界面,进入编辑模式修改root密码!
但是! GRUB引导界面现时只有5s,5s后就会自动进入系统。
不行 5s太短了,没那么快能反应过来在5s内输入键进入编辑模式。
引导装载程序GRUB
- (一)GRUB概述
- (二)修改启动项的等候时常
- (三)GRUB界面修改root用户密码
- 方法一:rd.break参数
- 方法二:Shell引导界面
- (四)设置GRUB密码
- 方法一:明文——为GRUB设置密码
- 方法二:密文——对GRUB密码加密
因此,我们来了解GRUB,修改这个时限。
(一)GRUB概述
在系统启动中,引导装载程序开始,到装载内核之前都由GRUB负责。内核被保存在/boot/,通过将内核装载到内存。GRUB是GNU GRand Unified Bootloader的缩写,作为一个多重操作系统启动管理器,除引导Linux之外,也可在多操作系统共存时管理多重操作系统的引导。可对GRUB进行配置管理来实现对系统启动选项的控制,干预系统启动。
- GRUB实际上是一个微型的操作系统,可以识别一些常用的文件系统,GRUB2运行时会读取自己的配置文件/boot/grub2/grub.cfg。
- GRUB2的主要配置文件是/etc/grub2.cfg,这是一个指向/boot/grub2/grub.cfg文件的符号链接。另外还有一个通用设置文件/etc/default/grub,一个/etc/grub.d/目录存放多种配置模板。
(二)修改启动项的等候时常
- 进入系统,输入如下指令
# vim /etc/default/grub #设置主要环境默认启动项的等候时常,5就是等候5s,将其改成-1则是要手动确认才能启动系统
GRUB_TIMEOUT=-1# grub2-mkconfig -o /boot/grub2/grub.cfg #重新加载生成配置文件
# reboot #重启系统即可生效
重启系统在GRUB引导界面,没有了时常限制,那我们就能更好的进入正题,修改root用户密码了!
(三)GRUB界面修改root用户密码
方法一:rd.break参数
此方法亦可以参考该博客特殊模式下重置root用户密码
(1)启动系统将进入GRUB2界面后,迅速按下< e >键进入GRUB编辑模式
(2)按向下箭头找到linux开头那一行,按<CTRL + e>跳至此行末尾,在末尾空一格,输入rd.break enforcing ,或者将enforcing设置0,enforcing=0。
- rd.break: 这个参数告诉内核在引导过程中在root挂载之前,暂停启动过程。它会在引导过程中进入一个临时的emergency shell(紧急模式下的shell),让你有机会在系统正式启动之前进行一些修复或者修改操作。
- enforcing: 这个参数通常用于SELinux安全模块,表示将 SELinux 设置为强制执行模式。
- enforcing=0 是一个临时的启动参数,用于将 SELinux 设置为宽松模式
(3)按<CTRL+x>组合键重启系统,进入如下界面
(4)执行以下命令重新挂载文件系统
mount -o remount,rw /sysroot
(5)执行以下命令改变系统目录为临时挂载文件:
chroot /sysroot
(6)执行passwd命令修改root密码,输入新密码
passwd
(7)在根目录下创建相关文件(用于重新标记SELinux环境值)
touch ./autorelabel
(8)执行exit命令退出chroot环境,再执行exit重启系统
rd.break这种方法一般用于修改root密码或者出现重大问题,临时中断运行,未装载任何系统。
方法二:Shell引导界面
(1)下箭头,选择第二个,按< e >键,进入GRUB编辑模式
(2)跳到Linux那一行,Ctrl+e跳转到行尾,将行尾的“rhgb quiet”删去
(3)在行尾加上“init=/bin/bash” 参数,向内核传递,使用Shell代替默认的daemon进程来重置root密码。设置完成后Ctrl+x启动系统
(4)输入如下命令
# mount -o remount,rw / ## 以写入的方式重新挂载根目录
# passwd root ## 修改root密码
# touch /.autorelabel ## 系统启动了SELinux,必须执行此命令,否则将无法正常启动系统
# exec /sbin/init ## 启动系统
修改完成!!!
(5)测试是否修改,则可以进入系统切换root用户时验证
(四)设置GRUB密码
由如上操作,任何人都能进入GRUB编辑界面修改root用户密码,这具有相当大的安全隐患,为了确保系统安全,因此可以设置GRUB口令,只有拥有口令的用户才能修改GRUB参数。
- 方法:修改GRUB配置文件,设定密码,以防止非法者进行GRUB编辑。
方法一:明文——为GRUB设置密码
# cd /etc/grub.d
# ls
00_header 10_reset_boot_success 20_ppc_terminfo 40_custom
01_users 12_menu_auto_hide 30_os-prober 41_custom
08_fallback_counting 14_menu_show_once 30_uefi-firmware README
10_linux 20_linux_xen 35_fwupd
# vim 00_header
(1)编辑/etc/gurb.d/00_header文件,在末尾添加以下内容并保存。
cat << EOF
set superusers='admin'
password admin 123456
EOF
(2)执行grub2-mkconfig命令重新生成grub.cfg文件:
# grub2-mkconfig -o /boot/grub2/grub.cfg
(3)重新启动系统,GRUB开始界面输入< e >键进入GRUB编辑模式,输入用户和密码
方法二:密文——对GRUB密码加密
# cd /etc/grub.d
# vim 00_header修改加密工具:
cat << EOF
set superusers='ley'
password_pbkdf2 ley
EOF这里修改了用户名为ley
# grub2-mkpasswd-pbkdf2 ##使用grub2-mkpasswd-pbkdf2工具生成加密密码
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.ACD37EA927F5BC808C836636B9899D6439B7378C68AFF990F9E4D1F4DB8C91C5F49E35ADE66D098EF2C84B2BB7868FA46A26630F4ADC5E89F591DC95F0B66897.43DD8AFF2C8DD2268014B3195574651B908677CEEB3F5BB06A46423A5B3180E4D59D864807A0C9DC606568A9BA9CFAD1C4F7090A1E8ABA212C73C90355FB47B7##将passwd is后面一长段复制到password_pbkdf2 ley 后面,密码位置,修改完后wq!退出
# grub2-mkconfig -o /boot/grub2/grub.cfg ##执行grub2-mkconfig命令重新生成grub.cfg文件
Generating grub configuration file ...
Adding boot menu entry for UEFI Firmware Settings ...
done
# reboot ##重启系统
如果在操作过程中遇到了其他问题,可以参考相关文档或者寻求更详细的指导哦!