CentOS7系统的root密码丢失后如何重设

5 篇文章 0 订阅

自己的一台笔记本上几个月前安装了一个CentOS7的系统,但是很久没用,当时设置的root密码已经不记得了,试了好几次没试出来。。。怎么破呢?


从CentOS7开始采用的是systemd的进程管理方式,CentOS6及早期的版本中runlevel的概念已经没有了。不过,在CentOS7中可以使从initramfs运行的脚本在某点暂停,使其提供root shell,然后在在该shell存在的情况下继续。这个方法主要是为了进行调试,但是也可以用于恢复丢失的root密码。具体步骤如下:

1. 重新启动系统,在启动加载器倒计时的时候,移动光标到需要启动的条目,按e进入编辑

2. 将光标移动到以linux16开头的那条内核命令行,在末尾添加rd.break,目的是使其在从initramfs向实际系统移交控制权前,中断该操作

3. 按ctrl+x键以使用这些更改进行启动,之后便会显示出以switch_root为提示符的shell界面。但是,实际系统的root文件系统是在/sysroot目录中以只读方式挂载的

4. 这时需要使用读写的方式重新挂载/sysroot目录:mount -oremount,rw /sysroot

5. 然后使用chroot命令切换root目录到/sysroot目录:chroot /sysroot

6. 这时就可以使用:passwd root 命令来设置新的root密码了

7. 需要注意的是,由于此时尚未启用SELinux,因此任何创建的新文件(passwd命令首先会创建一个新文件,然后移动新文件以代替要编辑的文件,因此会创建不带SELinux上下文的新文件)都不会分配有SELinux上下文。所以,还需要确保所有未标记的文件在启动过程中都重新获得标记,执行命令:touch /.autorelabel

8. 输入exit退出chroot存放位置,再输入一次exit退出initramfs调试shell。这时,系统将继续进行启动,执行完SELinux重新标记后,再启动系统就成功完成了


这时在登陆界面输入刚才重新设置的root密码,就能登陆进去了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值