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默认密码复杂度策略,太短的密码会拒绝。可以设置长一点密码,或者临时关闭复杂度(教学实验环境)。

相关推荐
David猪大卫9 天前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
Dragon~Snow10 天前
Centos Stream10 安装 MySQL-9.7.2-linux-glibc2.28-x86_64.tar
linux·mysql·centos
温暖小土11 天前
在 CentOS 上安装 Redis Stack
linux·redis·centos
Linux界最忧郁之人11 天前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
源图客11 天前
解决CentOS操作系统网络异常问题
linux·运维·centos
寺中人12 天前
CentOS 7进程与任务管理
linux·运维·centos·服务器搭建与管理·linux运维命令·nohup screen
m0_7436975913 天前
CentOS Stream 9 综合实验:FTP、DNS 与 Tomcat 排障
centos·tomcat·firefox
NiceZack15 天前
Hadoop 部署全流程教程:从新装 CentOS 到伪分布式与完全分布式
hadoop·分布式·centos
宁波阿成17 天前
CentOS 7 环境下 Tomcat 8.5 升级至 9.0.123 操作总结
linux·centos·tomcat
maochongsandai11017 天前
Centos上运行docker应用命令汇总
linux·docker·centos