恢复root密码: 

每个系统管理员都应该完成一项任务就是恢复丢失的root密码。有一些显得方法可以设置新的root密码。例如,系统管理员可以使用Live CD启动系统,从此处挂在root文件系统,然后编辑/etc/shadow.下面我将介绍一个无需使用外部介质的方法。

Red hat Enterprise Linux 7 中,可以使用从initranmfs运行的脚本在某些点暂停。提供root shell,然后在该shell存在情况下继续。

1.重新启动系统。

2.按任意键断启动加载器倒计时。

3.将光标移到需要启动的条目。

4.按e编辑选定的条目。

5.将光标移到内核命令行(以Linux16开头的行)。

6.附加rd.break(就在从initranmfs向实际系统移交控制权前,该操作会中断)。若Ctrl+x后不能进入switch_root:/#界面,则应该删除Linux16那行ro至末尾,然后附加rd.break

7.Ctrl+x使用这些更改进行启动。

具体操作步骤:

1.以读写形式重新挂载 /sysroot

switch_root:/#mount -oremount,rw /sysroot

2.切换为chroot存放位置,其中/sysroot被视为文件系统树的root

switch_root:/#chroot /sysroot

3.设置新的root密码:

Sh-4.2# passwd root

4.确保所有未标度的文件(包括此时的/etc/shadow)在启动过程中都会重新获得标记

Sh-4.2# touch /.autorelabel

5.输入两次exit。第一次退出/chroot存放位置,第二次将退出initramfs 调试shell。此时系统将继续进行启动,执行完整的SELinux重新标记,然后再次重新启动。

wKioL1Zq0kficbT2AAANlNcSDes542.png



wKiom1Zq0lWQY6KwAAAS-kQdqTk232.png


重置丢失的root密码

在开始之前,重置系统或将系统恢复快照

进入系统执行以下脚本lab rootpw setup root密码重置为随机字符串,并重新启动了系统。

switch_root:/#mount -oremount,rw /sysroot

switch_root:/#chroot /sysroot

Sh-4.2# echo redhat | passwd --stdin root

Sh-4.2# touch /.autorelabel

Sh-4.2#exit

switch_root:/#exit