centos7修改root密码

本文介绍了一种在CentOS系统中设置root密码的方法,通过在系统启动时添加rd.break参数,利用chroot命令在早期启动阶段获取root权限,进而设置root密码。同时,文章还详细解释了如何处理SELinux相关问题,确保开机时正确设定SELinux context。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接
https://blog.51cto.com/8686505/2379290?source=dra

平时用不到,用到的时候又记不住怎么操作,所有找了一个用着是可以成功的,保存一下方便以后再找^-^

1.修改思路
systemd 的管理机制中,rescure 模式和 emeryency 模式是无法直接取得 root 权限的,需要使用 root 密码才能进入 rescure 和 emeryency 环境。所以我们需要通过其他方式来设置 root 密码。我们可以为内核的启动指定 "rd.break" 参数,从而让系统在启动的早期停下来,此时我们可以通过使用 root 权限并结合 chroot 命令完成设置 root 密码的操作。
下面我们一起来看具体的操作过程。

重启之后有如下图的显示
centos7修改root密码
根据提示按【e】去编辑选择的项目,会出现下面的界面,在内核所在的行最后添加rd.break,如图
centos7修改root密码
接着按下 ctrl + x 以该设置继续启动,启动过程中操作系统会停下来,这是系统启动过程中的一个非常早的时间点:
centos7修改root密码
所以系统的根目录还挂载在 RAM disk 上(就是内存中的一个文件系统),我们可以通过 mount 命令检查系统当前挂载的文件系统,下面是我们比较关心的两条:
centos7修改root密码
上图中 mount 命令输出的第一行说明此时的根目录在一个 RAM disk 中, 即 rootfs。
图中输出的第二行说明我们的文件系统此时被挂载到了 /sysroot 目录,并且是只读的模式:

/dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr2,inode64,noquota)
而在我们正常登陆系统的情况下,系统根目录的挂载情况如下:

/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
该时间点的最大优势是我们具有 root 权限!所以让我们开始设置新的 root 密码吧。

先通过下面的命令把 /sysroot 重新挂载为可读写的模式:

switch_root:/# mount -o remount,rw /sysroot
然后用下面 chroot 命令把根目录切换到我们原来的环境中:

switch_root:/# chroot /sysroot
用下面的命令为 root 用户设置新的密码:

sh-4.2# echo "new_root_pw" | passwd --stdin root

接下来还要处理 SELinux 相关的问题。由于当前的环境中 SELinux 并未启动,所以我们对文件的修改可能造成文件的 context 不正确。为了确保开机时重新设定 SELinux context,必須在根目录下添加隐藏文件 .autorelabel:

sh-4.2# touch .autorelabel
最后从 chroot 中退出,并重启系统:

sh-4.2# exit
switch_root:/# reboot
重新进入登陆界面时就可以使用刚才设置的密码以 root 登陆了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值