CentOS 8 重置root密码完整步骤

文章目录

CentOS 8 重置root密码完整步骤

⚠️ 前提:能物理/虚拟机操作服务器,开机能进入GRUB菜单

步骤1:开机进入GRUB引导菜单

Use the ↑ and ↓ keys to change the selection. Press 'e' to edit the selected item, or 'c' for a command prompt.

开机,在GRUB倒计时界面按任意键 ,调出引导菜单(就是上一张图Use the ↑ and ↓ keys...界面)

用上下方向键,选中正常的内核启动项 (不要选 rescue 救援项),按下 e 进入编辑界面(就是你截图的编辑页面)

步骤2:修改 linux 内核启动参数

load_video set gfx_payload=keep insmod gzio linux ($root)/vmlinuz-0-rescue-xxxx root=/dev/mapper/cl-root ro crashkernel=auto resume=/dev/Mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet initrd ($root)/initramfs-0-rescue-xxxx.img

找到以 linux 开头那一行:

linux ($root)/vmlinuz- xxx root=/dev/mapper/cl-root ro ...... rhgb quiet

  1. 将这一行里的 ro (只读)修改为 rw(读写)
  2. 在该行末尾 添加:init=/sysroot/bin/sh

修改示例片段:

... cl-root rw ... quiet init=/sysroot/bin/sh
小提示:

  • 可以按End键直接跳到行尾;方向键移动光标修改
  • 不要改动其他参数,只改 ro,追加 init=/sysroot/bin/sh

步骤3:启动进入单用户shell

改完后,按 Ctrl + x ,系统会按修改后的参数启动,最后进入sh命令行。

步骤4:切换真实系统环境

此时是临时内存环境,执行切换命令:

bash 复制代码
chroot /sysroot

提示符会变成 sh-4.4#,代表已经进入你的CentOS真实系统。

步骤5:修改root密码

bash 复制代码
passwd root

输入新密码,再确认一次密码。

如果开启了SELinux(CentOS8默认开启),必须执行这条,否则重启无法登录:

bash 复制代码
touch /.autorelabel

步骤6:退出重启

bash 复制代码
exit

再执行重启

bash 复制代码
reboot

⏱ 注意:第一次重启会触发SELinux重新标记,开机过程会很慢,耐心等待,不要强制断电。标记完成后系统正常启动,就可以用新root密码登录。

常见坑排查

  1. 找不到ro:在linux行靠前位置,root=/dev/mapper/cl-root后面
  2. 执行passwd提示找不到命令:确认执行了chroot /sysroot
  3. 修改完密码重启登录失败:忘记touch /.autorelabel,SELinux阻止登录,是CentOS最常见错误
  4. 选了rescue救援内核:尽量选普通内核条目,rescue条目不适合这个单用户改密码方法

CentOS 8 修改普通用户 user 的密码

两种场景:知道root密码 / 忘记user密码(用root重置)

场景1:以root身份修改(忘记旧密码)

登录root账号后执行:

bash 复制代码
passwd user

然后按提示输入新密码,再确认一遍密码。

复制代码
[root@localhost ~]# passwd user
更改用户 user 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

✅ 完成,user 用户密码已重置。

说明:root修改普通用户密码不需要输入旧密码,直接设置新密码。

场景2:user用户自己修改自己密码(知道旧密码)

先登录 user 账号,直接执行不带用户名的passwd:

bash 复制代码
passwd
  1. 输入当前旧密码
  2. 输入新密码
  3. 确认新密码

常用附加命令

  1. 查看user用户信息
bash 复制代码
id user
  1. 锁定user账号(禁止登录)
bash 复制代码
passwd -l user
  1. 解锁user账号
bash 复制代码
passwd -u user
  1. 强制用户下次登录必须改密码
bash 复制代码
chage -d 0 user

单用户模式的情况

如果你现在还在单用户chroot /sysroot环境内:

bash 复制代码
# 进入真实系统
chroot /sysroot
# 修改user密码
passwd user
# 如果SELinux开启,依然需要执行
touch /.autorelabel
exit
reboot

⚠️ 注意:CentOS默认密码复杂度策略,太短的密码会拒绝。可以设置长一点密码,或者临时关闭复杂度(教学实验环境)。

相关推荐
H.莓飛2 小时前
【Linux】命令行参数、环境变量与程序地址空间
linux·c语言·chrome·后端·centos
quweiie17 小时前
Neo4j Community 安全访问配置总结
数据库·centos·neo4j
H.莓飛2 天前
【数据结构】队列
linux·数据结构·centos
H.莓飛2 天前
【数据结构】队列_OJ题
linux·数据结构·centos
H.莓飛2 天前
【数据结构】栈_OJ题
linux·数据结构·算法·centos
H.莓飛2 天前
【数据结构】栈
linux·开发语言·数据结构·算法·centos
谷哥的小弟3 天前
CentOS Stream浴火重生
linux·运维·centos
shjita3 天前
centos中安装docker
linux·docker·centos
谷哥的小弟3 天前
CentOS寿终正寝
linux·运维·centos