linux服务器修改登陆密码忘记了怎么办
linux服务器修改登陆密码忘记了怎么办详细介绍
当 Linux 服务器忘记登录密码时,可以通过单用户模式(紧急模式)重置密码。以下是详细步骤(以常见的 CentOS/RHEL 7 + 和 Ubuntu/Debian 为例):
一、通用前提条件
- 物理或远程重启权限:需能重启服务器(云服务器可通过控制台重启,物理服务器需本地操作)。
- GRUB 引导菜单访问:启动时需进入 GRUB 引导界面(部分系统需按
E、Shift或Esc键唤起)。
二、CentOS/RHEL 7+ 重置密码步骤
1.
进入 GRUB 编辑模式
- 重启服务器,在 GRUB 菜单出现时按
E键(或多次按Shift)进入编辑界面。 - 找到以
linux16开头的内核启动行(通常包含ro quiet字样)。
2.
修改启动参数
- 将
ro quiet改为rw init=/sysroot/bin/sh(或rw rd.break)。- 原行示例:
linux16 /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root ro quiet LANG=en_US.UTF-8 - 修改后:
linux16 /vmlinuz-3.10.0-1160.el7.x86_64 root=/dev/mapper/centos-root rw init=/sysroot/bin/sh LANG=en_US.UTF-8
- 原行示例:
- 按
Ctrl+X或F10启动进入单用户模式。
3.
挂载系统根目录
- 若使用
init=/sysroot/bin/sh,需先切换根目录:bash/sysroot - 若使用
rd.break,系统会自动进入紧急模式,直接执行:bashremount,rw /sysroot/sysroot
4.
重置密码
- 修改 root 密码(或其他用户密码):bash
root - 输入新密码并确认(密码输入时不会显示)。
5.
修复 SELinux(如启用)
- 若系统启用 SELinux,需更新安全上下文:bash
/.autorelabel
6.
退出并重启
- 按
Ctrl+D退出chroot,再执行:bash/sbin/init - 或直接重启:bash
三、Ubuntu/Debian 重置密码步骤
1.
进入 GRUB 编辑模式
- 重启服务器,在 GRUB 菜单出现时按
E键进入编辑界面。 - 找到以
linux开头的内核启动行(通常包含splash quiet字样)。
2.
修改启动参数
- 在行末添加
init=/bin/sh,将ro改为rw:- 原行示例:
linux /boot/vmlinuz-5.4.0-100-generic root=UUID=xxx ro splash quiet - 修改后:
linux /boot/vmlinuz-5.4.0-100-generic root=UUID=xxx rw single init=/bin/sh
- 原行示例:
- 按
Ctrl+X启动进入单用户模式(single表示单用户模式)。
3.
重置密码
- 直接修改 root 密码(无需切换根目录):bash
root
4.
重启系统
- 执行:bash
/sbin/init或:bash
四、注意事项
- 云服务器特殊处理
- 若为云服务器(如阿里云、腾讯云),可通过控制台的 “重置密码” 功能直接操作,无需进入单用户模式(需验证服务器所有权)。
- UEFI 引导系统
- UEFI 模式下 GRUB 菜单可能需更长时间按启动键(如
F2、F12或厂商指定按键)。
- UEFI 模式下 GRUB 菜单可能需更长时间按启动键(如
- 文件系统只读问题
- 若提示无法修改密码,检查是否已将根目录挂载为可写(
rw),或使用mount -o remount,rw /重新挂载。
- 若提示无法修改密码,检查是否已将根目录挂载为可写(
- 安全风险
- 单用户模式需物理 / 管理员权限,操作后确保新密码安全存储,避免泄露。
五、总结
忘记 Linux 服务器密码时,通过单用户模式可绕过登录验证,直接以 root 权限重置密码。不同发行版步骤略有差异,但核心是修改启动参数进入特权模式。对于云服务器,优先使用厂商提供的密码重置工具,更便捷安全。