能正常登录时直接运行 sudo passwd root 即可;彻底忘记密码则需进 grub 修改启动参数重置。已登录且有 sudo 权限时,执行该命令先输当前用户密码,再设新 root 密码两次。

能正常登录系统时,直接运行 sudo passwd root 就行;彻底忘了密码,必须进 GRUB 修改启动参数重置——没别的路。
已登录且有 sudo 权限:用 sudo passwd root 最稳
只要当前用户在 sudoers 里(比如属于 sudo 或 wheel 组),就能一步改掉 root 密码,不需要知道原密码。
- 执行
sudo passwd root后,先输的是你自己的密码(不是 root 的),输完回车 - 接着提示输入新 root 密码两次,输入时不显示字符,属正常现象
- 密码太短(passwd 会报
BAD PASSWORD,但默认仍会接受——除非系统启用了严格策略(如pam_pwquality) - 改完立刻生效,所有已打开的终端 session 不受影响,也不需重启服务
GRUB 下重置遗忘密码:rd.break vs init=/bin/bash
两者都绕过登录流程,但适用场景和风险不同:
-
rd.break(RHEL/CentOS/Fedora/Rocky/AlmaLinux 推荐): – 在linux行末尾加rd.break,启动后进switch_root:/#– 必须先mount -o remount,rw /sysroot,再chroot /sysroot,然后跑passwd root– SELinux 启用时,必须执行touch /.autorelabel,否则下次启动卡住 -
init=/bin/bash(Ubuntu/Debian/Arch/RHEL 全系通用): – 把ro改成rw,末尾加init=/bin/bash– 启动即落在sh-5.1#,根目录已可写,直接passwd root– 同样要touch /.autorelabel,哪怕你不确定 SELinux 是否开启——省事但别跳过
改完登不进去?大概率不是密码没生效
常见真因和对应检查点:
-
/etc/shadow所在分区仍是只读:重置后没执行mount -o remount,rw /或mount -o remount,rw /sysroot - SELinux 上下文损坏:没打
/.autorelabel标记,或重置后没等 relabel 完成就强行登录 -
/boot在独立分区但没手动挂载:导致 initramfs 加载失败,系统卡在 early boot 阶段,根本到不了 PAM 认证环节 - 某些云平台(如 AWS EC2、阿里云 ECS)禁用了 GRUB 编辑,VNC 控制台也受限——这种情况下,重置密码唯一可行路径是挂载系统盘到另一台实例修改
/etc/shadow
真正麻烦的从来不是输错命令,而是改完密码却卡在登录界面——那说明底层挂载、SELinux 或分区状态没理清,光盯 passwd 没用。











