在Linux 7.3系统中(通常指基于RHEL 7.3的发行版,如CentOS 7.3),若忘记root密码或用户密码,可通过引导进入紧急模式或单用户模式重置密码,操作需物理访问服务器或控制台权限,具体步骤如下:
重置密码操作步骤
进入GRUB引导菜单
重启服务器,在开机自检阶段(显示厂商LOGO时)迅速按下Shift键或Esc键,进入GRUB引导菜单,若默认未显示菜单,需在BIOS/UEFI中开启“Show GRUB menu”或类似选项。
编辑内核参数
在GRUB菜单中,使用方向键选择默认内核条目(通常为第一个),按下e键进入编辑模式,定位以linux16
或linuxefi
开头的行(具体取决于启动模式),该行包含内核加载参数。
修改启动参数
找到参数中的ro
(只读模式),将其修改为rw
(可读写模式),并在行尾添加init=/bin/bash
或rd.break
(推荐使用rd.break
,进入initramfs紧急模式,更安全)。
- 示例修改前:
linux16 /vmlinuz-3.10.0-514.el7.x86_64 ro crashkernel=auto rd.lvm.lv=centos/root rhgb quiet
- 修改后:
linux16 /vmlinuz-3.10.0-514.el7.x86_64 rw init=/bin/bash crashkernel=auto rd.lvm.lv=centos/root rhgb quiet
启动系统
按下Ctrl+X或F10,系统将以修改后的参数启动,进入紧急模式(bash命令行)。
挂载根分区(若使用rd.break
)
若使用rd.break
,系统会自动挂载根分区到/sysroot
,但默认为只读模式,需手动重新挂载为可读写:
mount -o remount,rw /sysroot
若直接使用init=/bin/bash
,根分区可能挂载在,需通过df -h
确认挂载点,确保为可读写模式。
切换根环境并修改密码
通过chroot
命令切换到实际根环境,然后使用passwd
命令重置密码:
chroot /sysroot # 若根在/sysroot;若根在/则无需此命令 passwd root # 重置root密码,按提示输入新密码两次
若重置普通用户密码,将root
替换为用户名,如passwd username
。
同步文件系统并重启
退出chroot环境,同步文件系统,然后重启:
touch /.autorelabel # 可选:让系统在重启时重新标记SELinux安全上下文,避免权限问题 exit reboot
操作步骤简表
步骤 | 注意事项 | |
---|---|---|
1 | 重启服务器,按Shift/Esc进入GRUB菜单 | 需在开机自检阶段快速操作,超时则需重启 |
2 | 选择内核条目,按e键编辑参数 | 定位linux16 或linuxefi 开头的行 |
3 | 将ro 改为rw ,添加init=/bin/bash 或rd.break |
rd.break 更推荐,可避免部分系统挂载问题 |
4 | 按Ctrl+X/F10启动系统 | 进入bash命令行(紧急模式) |
5 | 执行mount -o remount,rw /sysroot (若需要) |
确认根分区挂载点,确保可读写 |
6 | 执行chroot /sysroot (若需要)→ passwd 用户名 |
重置密码需输入两次新密码 |
7 | 执行touch /.autorelabel → exit → reboot |
SELinux系统建议执行touch /.autorelabel |
注意事项
- 物理访问必要性:重置密码需本地控制台或IPMI/ILO等远程管理权限,无法通过纯SSH操作完成。
- SELinux影响:若系统开启SELinux,直接修改密码后可能因安全上下文异常导致登录失败,建议执行
touch /.autorelabel
让系统重启时自动修复。 - 文件系统检查:若挂载时提示错误,可先使用
fsck
检查文件系统(如fsck /dev/sdaX
),避免数据损坏。
相关问答FAQs
Q1:忘记root密码且GRUB菜单无法进入(如启动直接进入系统),怎么办?
A:若GRUB菜单未显示且无法通过Shift/Esc调出,需通过救援U盘启动:
- 使用同版本Linux系统的安装U盘启动,选择“Troubleshooting”→“Rescue a CentOS Linux system”;
- 按提示选择语言、键盘布局,进入救援模式后,系统会自动挂载原根分区到
/mnt/sysimage
; - 执行
chroot /mnt/sysimage
切换到原系统环境,使用passwd root
重置密码,最后执行exit
→reboot
重启。
Q2:重置密码后登录时提示“Authentication token manipulation error”,如何解决?
A:该错误通常因文件系统权限异常或SELinux安全上下文问题导致,可尝试以下方法:
- 在紧急模式下(进入GRUB修改参数启动),执行
chroot /sysroot
; - 检查密码文件权限:
ls -l /etc/shadow
,确保属主为root,权限为600; - 修复SELinux安全上下文:
restorecon -Rv /etc/shadow
; - 若仍报错,可尝试重建密码文件:
rm /etc/shadow && pwconv
(pwconv
会根据/etc/passwd重建shadow文件),之后重新设置密码。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/25288.html