已登录且有sudo权限时,直接运行sudo passwd root即可重置root密码;彻底遗忘密码则必须通过grub修改启动参数,常用rd.break(rhel系)或init=/bin/bash(通用)方式进入救援环境,挂载根文件系统为读写后执行passwd root,并在selinux启用系统中执行touch /.autorelabel确保下次正常启动。

能正常登录系统时,sudo passwd root 一步搞定;彻底忘了密码,必须进 GRUB 改启动参数重置——没别的路可走。
已登录且有 sudo 权限:直接用 sudo passwd root
这是最常见也最安全的场景。你不需要是 root,只要当前用户在 sudoers 里(比如属于 sudo 或 wheel 组),就能执行:
- 运行
sudo passwd root,输入的是你自己的密码(不是 root 的) - 接着按提示输入新 root 密码两次;密码太短、缺数字或小写字母时,
passwd会报BAD PASSWORD并拒绝保存 - 改完立刻生效,不用重启,也不影响已打开的终端会话
- 如果提示
Authentication token manipulation error,先检查/etc/shadow所在分区是否为只读(比如磁盘满或挂载异常)
忘记密码、无法登录:用 rd.break 进救援模式(RHEL/CentOS/Rocky/AlmaLinux 推荐)
这个方法兼容 SELinux,适合生产环境,但步骤稍多:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 开机时按住
Shift(BIOS)或Esc(UEFI)进 GRUB 菜单,选中启动项后按e - 找到以
linux16或linux开头的行,把末尾的ro替换为rw rd.break - 按
Ctrl+X启动,等出现switch_root:/#提示符 - 执行
mount -o remount,rw /sysroot,再chroot /sysroot - 运行
passwd root设新密码;若失败,确认/sysroot确实挂为读写,且 SELinux 状态没被绕过 - 必须执行
touch /.autorelabel,否则下次启动卡在 relabel 阶段 - 输两次
exit重启
忘记密码、通用快捷法:用 init=/bin/bash(Ubuntu/Debian/RHEL 全支持)
操作快,但风险略高——init 进程被替换成 bash,部分服务未初始化:
- 同样进 GRUB 编辑界面,找到
linux行,把ro改成rw,末尾加空格再加init=/bin/bash - 按
Ctrl+X启动后直接落在sh-5.1#提示符下,根文件系统已挂为读写 - 直接运行
passwd root,无需chroot或额外挂载 - 仍要执行
touch /.autorelabel,哪怕你不确定 SELinux 是否启用 - 最后用
exec /sbin/init或exec /sbin/reboot -f继续启动流程
真正容易被忽略的不是改密码本身,而是改完后无法登录:多半因为 /etc/shadow 分区仍是只读、SELinux 上下文损坏没打标,或者 /boot 在独立分区却没手动挂载导致 initramfs 加载失败。光跑 passwd 没用。










