Loading... <div class="tip inlineBlock info"> 在 Linux 服务器运维中,密码长期未更新导致自动过期进而无法登录是常见问题。本文将基于实际操作场景,详细讲解如何通过 ** 单用户模式(急救模式)** 重置密码、查看系统用户,并解决密码修改后不生效的疑难问题,为你的服务器运维提供完整参考。 </div> # 一、问题背景:密码过期导致登录失败 Linux 系统为保障安全,会对用户密码设置有效期(可通过chage命令查看)。若长期未更新密码,系统会自动锁定登录权限,此时需通过单用户模式(一种拥有 root 权限的维护模式)进行密码重置。 # 二、解决步骤:单用户模式重置密码全流程 1. 进入 GRUB 引导界面(重启服务器) 首先重启服务器(物理机按电源键,虚拟机通过管理界面操作),启动过程中快速按下 Esc(或Shift/e键,不同系统略有差异),进入GRUB 引导菜单。 2. 进入单用户模式(分发行版操作) (1)CentOS/RHEL 系统 * 在 GRUB 菜单中选中默认内核,按e键编辑启动参数。 * 找到以linux16开头的行,将末尾的ro改为 `rw init=/sysroot/bin/sh`,按Ctrl+X启动。 * 启动后执行 `chroot /sysroot` 切换到根文件系统(获取完整 root 权限)。 (2)Ubuntu/Debian 系统 * 在 GRUB 菜单中选中内核行,按e键编辑,找到以linux /boot/vmlinuz-xxx开头的行,末尾添加 `rw init=/bin/bash`,按F10启动。 * 直接进入带 bash 的急救模式,无需额外切换目录。 3. 重置用户密码 执行passwd 用户名(重置 root 密码可直接用passwd),按提示输入新密码(Linux 输入密码时无显式字符,输完回车即可)。 若提示密码过于简单,可强制设置: ``` passwd -f 用户名 # 如 passwd -f root ``` 4. 调整密码有效期(避免再次过期) 推荐设置 “下次登录强制改密”,兼顾安全与易用性: ``` chage -d 0 用户名 # 如 chage -d 0 root ``` 5. 重启验证 * CentOS:执行exit退出chroot,再输入reboot。 * Ubuntu:执行exec /sbin/init或reboot -f。 重启后用新密码登录,若设置了chage -d 0,会提示强制修改密码,按流程操作即可。 三、如何查看系统所有用户? 若忘记用户名,可通过以下命令查看: ``` cat /etc/passwd # 查看所有用户配置 awk -F: '$3>=1000 {print $1}' /etc/passwd # 过滤普通用户(UID≥1000) ``` # 三、总结与日常维护建议 单用户模式是 Linux 服务器密码维护的 “救命稻草”,但日常仍需注意: * 定期通过chage -l 用户名查看密码有效期,提前更新。 * 对重要用户设置合理的密码策略(如每 90 天更新一次)。 * 记录服务器所有用户,避免因用户名混淆导致操作失误。 掌握以上流程,即可高效解决密码过期导致的登录问题,保障服务器的正常运维。 最后修改:2025 年 11 月 14 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏