Linux系统中,无论是管理员忘记root密码导致无法管理系统,还是普通用户忘记登录密码无法进入系统,都会严重影响日常使用,此时需通过底层方法重置密码,而非常规的passwd
命令(因无法登录),本文将分场景详细介绍密码重置方案,涵盖GRUB引导、救援模式等常见方法,并附操作注意事项及FAQs。
root密码丢失:通过GRUB单用户模式重置
root账户是Linux系统的超级管理员,密码丢失后需通过引导加载程序(如GRUB)进入单用户模式或紧急模式,绕过密码验证直接修改系统文件。
操作步骤(以Ubuntu/Debian为例)
-
重启系统并进入GRUB菜单
开机时迅速按下Esc
键(或Shift
键,不同主板可能不同),进入GRUB引导菜单,若GRUB菜单一闪而过,需先修改GRUB配置:编辑/etc/default/grub
文件,将GRUB_HIDDEN_TIMEOUT
设为0
或删除该行,执行update-grub
更新配置后重启。 -
编辑内核参数
在GRUB菜单中选择“Advanced options for Ubuntu”,找到对应内核版本的条目(如“Ubuntu, with Linux 5.15.0-76-generic”),按e
键进入编辑模式。 -
修改启动参数
找到以linux
或linuxefi
开头的行,在行尾添加init=/bin/bash
(Ubuntu/Debian)或rd.break
(CentOS 7+,需后续执行switch_root /sysroot
),按Ctrl+X
启动。 -
重置密码
系统会以只读模式挂载根分区,需先重新挂载为读写模式:mount -o remount,rw / # Ubuntu/Debian # 或 CentOS 7+:switch_root /sysroot
使用
passwd
命令修改root密码:passwd root New password: [输入新密码] Retype new password: [确认新密码]
若修改
/etc/shadow
文件(如忘记passwd
命令位置),可将root密码字段置空:sed -i 's/^root:[^:]*:/root::/' /etc/shadow
-
重启系统
执行exec /sbin/init
或reboot -f
重启,新密码即可生效。
普通用户密码丢失:管理员通过passwd
命令重置
若普通用户忘记密码,且管理员(root)可正常登录,可直接使用passwd
命令重置,无需复杂操作。
操作步骤
-
以root身份登录系统
通过SSH或控制台登录root账户。 -
执行
passwd
命令passwd username # 替换为目标用户名 New password: [输入新密码] Retype new password: [确认新密码]
命令执行成功后,用户即可用新密码登录。
GRUB修改失败:通过救援模式重置
若GRUB菜单被隐藏、损坏或无法编辑,需使用系统安装介质(如U盘/光盘)进入救援模式。
操作步骤(以CentOS为例)
-
通过安装介质启动
将Linux安装U盘插入电脑,开机时按F12
(或其他启动快捷键)选择U盘启动,进入安装界面。 -
进入救援模式
选择“Troubleshooting”→“Rescue a CentOS Linux system”,按提示选择语言、键盘布局,系统会自动尝试挂载分区。 -
手动挂载根分区(若自动失败)
使用fdisk -l
查看磁盘分区,找到根分区(如/dev/sda2
),手动挂载:mount /dev/sda2 /mnt/sysroot # 挂载到救援环境的/mnt/sysroot chroot /mnt/sysroot # 切换到系统根目录
-
重置密码
执行passwd root
或passwd username
修改密码,完成后退出:exit reboot # 重启系统
不同方法对比与注意事项
方法对比表
方法 | 适用场景 | 所需工具 | 优点 | 缺点 |
---|---|---|---|---|
GRUB单用户模式 | root密码丢失,物理访问系统 | 无需额外介质 | 操作简单,快速 | 需GRUB菜单可编辑,部分系统隐藏菜单 |
管理员passwd 命令 |
普通用户密码丢失,root可登录 | 无 | 无需底层操作,安全 | 依赖root权限 |
救援模式 | GRUB损坏或无法修改 | 安装介质(U盘/光盘) | 稳定,可处理文件系统问题 | 需外部介质,步骤稍复杂 |
注意事项
- 文件系统检查:修改密码前,若系统异常,可执行
fsck /dev/sdaX
(sdaX
为根分区)检查文件系统完整性。 - SELinux兼容:CentOS/RHEL等开启SELinux的系统,重置密码后需执行
restorecon /etc/shadow
恢复文件安全上下文,否则可能无法登录。 - 备份重要文件:操作前建议备份
/etc/shadow
和/etc/passwd
,避免误操作导致系统无法启动。
FAQs
Q1: 忘记root密码后,GRUB菜单按Esc
无法进入,怎么办?
A: 可尝试在开机时长按Shift
键(部分主板需Esc
),或通过BIOS/UEFI设置禁用“快速启动”(Fast Boot),若仍无法显示,需拆机进入BIOS,修改启动顺序为“仅Legacy模式”(部分旧主板),或制作GRUB修复U盘(如使用Boot-Repair
工具)。
Q2: 重置密码后,用户无法SSH登录,提示“Permission denied”怎么办?
A: 首先检查SSH服务状态:systemctl status sshd
,未启动则执行systemctl start sshd
,其次检查/etc/ssh/sshd_config
中PasswordAuthentication
是否为yes
(默认为yes
,若禁用需改为yes
并重启SSH服务),若问题仍存在,可能是用户家目录权限错误,执行chown -R username:username /home/username
修复权限。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/23892.html