CentOS 7 忘记 root 密码?三步教你轻松重置!
CentOS 7 忘记 root 密码?别慌,三步搞定!
相信不少Linux管理员都有过忘记root密码的经历,尤其是在测试环境或者许久未登录的服务器上。别担心,CentOS 7 提供了多种恢复密码的方式,最简单的方法就是通过单用户模式(Single User Mode)进行重置。本文将手把手教你如何操作,哪怕你是新手也能轻松上手。
准备工作
- 一台安装了 CentOS 7 的物理机或虚拟机(本文以虚拟机为例)。
- 拥有物理访问权限(即能直接操作服务器或通过远程控制卡)。
- 耐心和细心,因为操作涉及系统引导修改。
方法一:通过 GRUB 引导进入单用户模式(推荐)
这是最常用的方法,不需要U盘或光盘,只需在开机时修改GRUB参数。
- 重启系统,在GRUB引导界面出现时(通常是开机后第一个界面),按下键盘上的 e 键进入编辑模式。
- 找到以
linux16或linux开头的行(通常是倒数第二行),在该行末尾添加rd.break或single参数。建议添加rd.break,因为它会进入紧急模式,然后你可以挂载文件系统并修改密码。 - 按 Ctrl+X 或 F10 启动进入紧急模式。
- 此时系统会挂载根文件系统为只读。执行以下命令重新挂载为读写:
mount -o remount,rw /sysroot - 切换到实际根目录:
chroot /sysroot - 使用
passwd命令重置 root 密码:
passwd root
输入新密码并确认。 - 如果 SELinux 处于启用状态,建议创建隐藏文件以重新标记文件系统:
touch /.autorelabel - 退出 chroot 并重启:
exit
reboot
重启后即可使用新密码登录 root。注意:如果系统启用了 Secure Boot,可能需要禁用或使用其他方法。
方法二:使用系统安装光盘/DVD 进入救援模式
如果没有 GRUB 菜单(比如UEFI问题),可以使用CentOS安装光盘启动进入救援模式。
- 插入 CentOS 7 安装光盘或启动U盘,从该介质启动。
- 在安装界面选择 Troubleshooting -> Rescue a CentOS system。
- 按提示选择语言和键盘布局,然后选择 1 继续。
- 系统会尝试挂载现有Linux安装,完成后会进入命令行(shell)。
- 执行
chroot /mnt/sysimage切换到系统的根目录。 - 使用
passwd root重置密码。 - 如果 SELinux 开启,执行
touch /.autorelabel。 - 输入
exit退出 chroot,然后reboot重启。
常见问题与提示
- 如果在单用户模式下无法挂载
/sysroot,可能需要使用mount -o rw,remount /sysroot。 - 部分系统可能使用了 LVM 或加密分区,需要额外挂载步骤,但基本思路一致。
- 重置密码后,建议检查
/etc/shadow文件的权限,确保密码正确生效。 - 如果因为密码丢失而无法 sudo,此方法同样适用。
总之,忘记root密码不是世界末日,只要你能物理接触机器,就能恢复访问。建议大家在重置后立即记录新密码,或者配置SSH密钥登录,避免再次遗忘。希望本文能帮你解决燃眉之急!