在Linux系统中,忘记密码或需紧急清除账户密码时,可通过系统权限绕过机制重置。此操作需物理接触服务器或获得合法授权,仅限自有设备或授权场景使用,以下是四种主流方法,涵盖不同发行版(Ubuntu、CentOS、Debian等),操作前请备份数据。
通过恢复模式(单用户模式)重置密码
适用场景:物理/虚拟机访问权限,支持GRUB引导的系统(如Ubuntu、CentOS 7)。
步骤:
- 重启系统,在GRUB菜单选择内核行,按
e
进入编辑模式。 - 修改启动参数:
- 找到
linux
或linux16
开头行,将ro
改为rw init=/bin/bash
(部分系统需删除rhgb quiet
)。
(图示:修改GRUB启动参数)
- 找到
- 按
Ctrl+X
启动,进入单用户根环境。 - 重置密码:
passwd username # 替换username为目标账户 echo "新密码" | passwd --stdin username # CentOS/RHEL专用语法
- 执行
sync
写入磁盘,重启生效。
使用Live CD/USB挂载根分区
适用场景:无法修改GRUB或系统损坏时。
步骤:
- 用Ubuntu Live USB启动,选择“试用Ubuntu”。
- 挂载根分区:
sudo fdisk -l # 查看分区(如/dev/sda1) sudo mount /dev/sda1 /mnt # 挂载根分区 sudo chroot /mnt # 切换根环境
- 重置密码:
passwd username # 直接修改密码
- 卸载分区并重启:
exit # 退出chroot sudo umount /mnt reboot
删除密码文件(紧急清理)
适用场景:需彻底清除密码(如账户锁定),慎用。
步骤:
- 进入单用户模式(同方法一)。
- 删除密码哈希:
cp /etc/shadow /etc/shadow.bak # 备份 sed -i 's/^username:.*$/username::/' /etc/shadow # 清空密码字段
- 重启后该账户无需密码登录,首次登录后立即用
passwd
重设密码。
Root密码已知时的快速重置
适用场景:记得root密码但需重置其他账户。
sudo -i # 切换root passwd username # 直接修改
🔒 安全与合规性警告
- 法律边界:仅在自有设备或授权环境下操作,未授权访问违法。
- 风险预防:
- 启用全盘加密(LUKS)可阻止此类操作。
- 服务器场景建议配置BIOS/UEFI密码和GRUB密码。
- 后续加固:
- 密码重置后立即更新所有账户密码。
- 审计日志:
grep 'password' /var/log/auth.log
。
引用说明:操作参考Linux内核文档、Ubuntu官方恢复指南及Red Hat故障排除手册,关键命令已验证于Linux 5.4+内核环境。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/18179.html