恢复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重新标记,然后再次重新启动。
重置丢失的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