Linux重置root密码
从启动加载器重置root密码
在红帽企业Linux8中,可以使从initranfs运行的脚本在某些点暂停,提供root shell,在该shell存在的情况下继续。这主要是为了进行调试,但也可以使用该方法来重置丢失的root密码。
访问root shell步骤如下:
重新启动系统
按除enter键外的任意键终端启动加载器即时。
将光标移动到要启动的内核条目。
按e编辑选定的条目。
将光标移动到内核命令行(以linux开头的行)。
在行尾空一个字符位置附加rd.break。利用该选项,就在系统从initramfs向实际系统移交控制权限,系统将会中断。
按Ctrl+x保存上述更改。
完成上述步骤后,系统会显示root shell,磁盘上的实际根文件系统会在/sysroot中以只读方式挂载,故障排除检查要求修改更文件系统,所有将根文件系统更改未可以读写。
从此时重置root密码,步骤如下:
以读写形式重新挂载/sysroot
switch_root:/# mount -o remount,rw /sysroot
切换为chroot存放位置,其中/sysroot被视为文件系统树的根。
switch_root:/# chroot /sysroot
设置新的root密码。
sh-4.4# passwd root
(输入密码、确认密码、设置成功)
确保所有未标记的文件(包括此时的/etc/shadow)在启动过程中都会重新获得标记。
sh-4.4# touch /.autorelabel
键入exit,退出chroot存放位置,再次键入exit,退出initranfs调试shell。
完成以上步骤后系统将继续进行启动,执行完整的SELinux重新标记,然后再次重新启动。