CentOS
CentOS 6 及更早版本
- 重启系统,在GRUB启动菜单出现时按下任意键停止倒计时。
- 按'e'键编辑第一个菜单项。
- 找到包含 'kernel' 的行,在行末添加 ' single'。
- 按Ctrl-X或F10启动到单用户模式。
- 输入
passwd root
命令更改root密码。
- 输入
sync; reboot
重启系统。
CentOS 7 及更高版本
- 重启系统,在GRUB2启动菜单出现时按'e'键。
- 找到以 'linux16' 或 'linuxefi' 开头的行。
- 将该行末尾的 'ro' 改为 'rw init=/sysroot/bin/sh'。
- 按Ctrl-X或F10启动系统。
- 输入
chroot /sysroot
切换到系统根目录。
- 输入
passwd root
更改root密码。
- 输入
touch /.autorelabel
更新SELinux标签。
- 输入
exit
然后 reboot -f
重启系统。
Debian
所有版本(方法大致相同)
- 重启系统,在GRUB菜单出现时按'e'键。
- 找到以 'linux' 开头的行。
- 在该行末尾添加 'init=/bin/bash'。
- 按Ctrl-X或F10启动系统。
- 输入
mount -o remount,rw /
重新挂载根文件系统为可写。
- 输入
passwd root
更改root密码。
- 输入
sync; reboot -f
重启系统。
Ubuntu
Ubuntu 14.04 及更早版本
- 重启系统,在GRUB菜单出现时按'e'键。
- 找到以 'linux' 开头的行。
- 将该行末尾的 'ro quiet splash' 替换为 'rw init=/bin/bash'。
- 按Ctrl-X或F10启动系统。
- 输入
passwd root
更改root密码。
- 输入
mount -o remount,ro /
重新挂载根文件系统为只读。
- 输入
sync; reboot -f
重启系统。
Ubuntu 16.04 及更高版本
Ubuntu默认禁用root账户,使用sudo进行管理。如果需要重置sudo用户密码:
- 重启系统,在GRUB菜单出现时按'e'键。
- 找到以 'linux' 开头的行。
- 将该行末尾的 'ro quiet splash' 替换为 'rw init=/bin/bash'。
- 按Ctrl-X或F10启动系统。
- 输入
passwd
更改指定用户的密码。
- 输入
mount -o remount,ro /
重新挂载根文件系统为只读。
- 输入
sync; reboot -f
重启系统。
注意事项:
- 这些步骤需要物理访问服务器或虚拟机控制台。
- 在生产环境中,请确保有适当的授权才执行这些操作。
- 对于使用UEFI的系统,可能需要禁用Secure Boot才能执行这些步骤。
- 在重置密码后,建议检查系统日志并考虑更新系统安全策略。
------------------------------------------------------------------
这些步骤涵盖了CentOS、Debian和Ubuntu的旧版本和新版本系统的root密码重置方法。以下是一些重要的补充说明:
- 安全性考虑:这些方法允许任何能够物理访问机器的人重置root密码。因此,在生产环境中,确保服务器的物理安全非常重要。
- 云服务器:如果您使用的是云服务器,许多提供商都有自己的密码重置工具,通常可以通过控制面板操作,不需要这些手动步骤。
- Ubuntu的特殊性:Ubuntu默认禁用root账户,而是使用sudo来进行系统管理。因此,通常您需要重置的是具有sudo权限的用户密码,而不是root密码。
- 双重认证:如果系统启用了双重认证(2FA),仅重置密码可能不足以重新获得访问权限。您可能还需要重新配置2FA。
- 密码策略:重置密码后,确保新密码符合系统的密码策略要求。
- 日志审计:在重置密码后,检查系统日志以确保没有未授权的访问。
- SELinux:对于使用SELinux的系统(如CentOS),重置密码后可能需要重新标记文件系统。
感谢提供:05互联
如果进不去系统操作命令?点击这一篇详细教程: CentOS、Debian和Ubuntu无法进入系统时的密码重置步骤