作为一名技术运维人员,在平台故障排查过程中,经常会遇到服务器密码遗忘的问题。Windows 系统可通过 PE 工具快速解决,但 Linux 系统的密码恢复方法往往通过搜索找方法。基于实际运维经验,本文对 Linux 系统下的密码重置方案进行了梳理与总结。
在操作时,首先要确定好版本信息,不同的版本,其操作方式也会不同。
Centos6系统版本
确定系统版本
连接显示器,看到centos release 6.X 即为centos6系列。若已登录系统,使用 cat /etc/redhat-release即可查看系统版本。

进入单用户模式
在用户登录时,可能会由于忘记密码,而导致无法登录系统,这时我们需要接入显示器、键盘,键入 ctrl+alt+delete 快捷键重启服务器。

当服务器重启,进入如下页面时,按任意键进入启动菜单,(建议按esc键,注意该页面只会停留3s):

进入GRUB启动菜单页面:

键入 a 进入内核编辑模式,在 quiet后键入 空格(注意空格) l:

然后回车确定,启动系统,这时我们就进入了单用户模式,使用runlever命令查看有如下输出:

可以看到,此时我们已经以root身份进入了系统(该模式下默认sshd、网络等服务未开启,若有需要可自行开启)
修改密码
例如我需要修改root用户密码为DH12345,使用命令 echo “DH12345” | passwd root --stdin 就将root用户密码修改成功了。
同理,若需要修改DH用户密码为1122334455,则使用 echo “1122334455” | passwd DH --stdin 。
修改完密码后键入 reboot 重启服务器。

(ps:注意英文符号,linux命令中符号皆为英文标点)
2.Centos7系统版本
确定系统版本
连接显示器,看到centos 7.X 即为centos7系列。若已登录系统,使用 cat /etc/redhat-release 即可查看系统版本。

进入救援模式
同centos6,我们在接好显示器键盘后先键入 ctrl+alt+delete 快捷键重启服务器。
当服务器重启,进入如下页面时,按任意键终止正常启动(建议按esc键,注意该页面只会停留5s);

然后将光标选定到第一个,键入e进入编辑模式,在linux16 一行最后 键入 空格 rd.break 然后 ctrl + x 启动,进入救援模式:

在救援模式下,先使用 mount -o remount,rw /sysroot 以读写权限重新挂载/sysroot目录,然后使用chroot /sysroot/切换至 /sysroot目录下:


可以看到在输入chroot命令后,用户提示符由 switch_root# 变为了 sh#,此时我们就可以修改密码了;
修改密码
同centos6修改密码,我们可以使用 echo “DH12345” | passwd root --stdin 修改root用户密码为DH12345 。
然后使用 touch /.autorelable 创建文件,使用ls /.autorelable 查看是否创建出该文件

这时密码就修改好了,键入exit退出到 switch_root#状态,然后reboot重启服务器。
-----------------END-------------------
本篇完
轻轻点击下方公众号可以查询更多技术资料和方案
声明:优质内容贵在与大家共享,部分文章来源于网络,如有侵权请告知,我们会在第一时间处理。合作和交流:18560233830