在CentOS系统中,root用户是拥有最高权限的管理员账户,因此root密码的安全性至关重要,有时我们可能需要修改root密码,比如忘记密码、初始密码需要重置,或者为了提升安全性定期更换密码,本文将详细介绍在CentOS系统中修改root密码的多种方法,包括正常登录状态下的修改、通过GRUB引导菜单重置密码,以及使用单用户模式恢复密码的步骤,同时也会提供一些注意事项和最佳实践。

正常登录状态下修改root密码
如果当前系统可以正常登录,并且拥有sudo权限或已经是root用户,修改root密码的过程非常简单,打开终端窗口,输入以下命令切换到root用户(如果当前不是root身份):
su -
系统会提示输入当前用户的密码,验证通过后,即可执行修改密码的命令:
passwd
系统会要求输入新的root密码并确认,为了确保密码强度,建议设置包含大小写字母、数字和特殊字符的组合,且长度不少于8位,密码输入时不会显示任何字符,这是正常的安全设计,修改完成后,系统会提示“passwd: password updated successfully”,表示密码已成功更新。
使用GRUB引导菜单重置 forgotten root密码
如果不慎忘记root密码且无法正常登录系统,可以通过GRUB引导菜单进入单用户模式重置密码,重启系统,在开机过程中迅速按下“Esc”或“Shift”键(具体按键可能因版本不同而异)进入GRUB引导界面,使用方向键选中默认的CentOS内核选项,然后按“e”键进入编辑模式。
在内核参数行中,找到以“linux16”或“linuxefi”开头的行,将光标移动到该行末尾,添加以下参数以跳过SELinux和磁盘检查:
rd.break enforcing=0
按下“Ctrl+X”组合键启动系统,系统会进入紧急模式(Emergency Mode),此时需要以读写模式挂载根文件系统,执行以下命令:

mount -o remount,rw /sysroot
切换到系统的根目录:
chroot /sysroot
现在可以像正常登录状态下一样使用passwd命令修改root密码,修改完成后,执行以下命令更新SELinux信息:
touch /.autorelabel
输入“exit”退出chroot环境,再次执行“exit”重启系统,系统会自动重新标记SELinux安全上下文,首次启动可能较慢,重启后即可使用新密码登录。
通过单用户模式恢复密码的替代方法
如果GRUB编辑方法不适用(例如某些云服务器禁用了GRUB编辑功能),还可以通过启动时修改内核参数进入单用户模式,在GRUB引导界面选择内核选项后,按“e”键编辑,将“ro”参数改为rw init=/bin/bash`,然后按“Ctrl+X”启动。
系统会直接进入bash shell,此时无需挂载操作,直接执行以下命令设置密码:
passwd root
按照提示输入新密码并确认,完成后,执行以下命令重启系统:

exec /sbin/init
如果上述命令无效,也可以使用reboot -f强制重启,需要注意的是,单用户模式会绕过系统认证,因此在操作完成后应立即修改密码并确保GRUB菜单设置了访问权限,防止未授权用户利用此方法入侵系统。
修改密码后的安全注意事项
重置或修改root密码后,建议进行以下安全配置:检查/etc/ssh/sshd_config文件,确保PermitRootLogin设置为“no”(禁止root用户直接通过SSH登录),改用普通用户账号登录后切换至root,启用Fail2ban等工具,限制暴力破解尝试次数,定期审计系统日志,检查是否有异常登录行为。
相关问答FAQs
Q1:修改root密码后无法登录,提示“Authentication failure”,如何解决?
A:可能是密码输入错误或大小写问题,如果确认密码正确,可尝试进入单用户模式重置密码(如前文所述),或检查/etc/shadow文件中root密码字段是否被意外修改,确保SSH服务未配置禁止root登录(检查sshd_config中的PermitRootLogin设置)。
Q2:通过GRUB重置密码后,系统启动时出现“SELinux relabeling”耗时过长,是否正常?
A:首次在单用户模式下修改密码后,系统会自动执行SELinux relabeling以恢复安全上下文,这是正常过程,可能需要10-30分钟(取决于磁盘大小),若长时间卡住,可检查磁盘空间是否充足或强制重启后进入恢复模式排查文件系统错误。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复