文章目录
- [CentOS 8 重置root密码完整步骤](#CentOS 8 重置root密码完整步骤)
- [CentOS 8 修改普通用户 `user` 的密码](#CentOS 8 修改普通用户
user的密码)
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
- 将这一行里的 ro (只读)修改为 rw(读写)
- 在该行末尾 添加:
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密码登录。
常见坑排查
- 找不到
ro:在linux行靠前位置,root=/dev/mapper/cl-root后面 - 执行passwd提示找不到命令:确认执行了
chroot /sysroot - 修改完密码重启登录失败:忘记
touch /.autorelabel,SELinux阻止登录,是CentOS最常见错误 - 选了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
- 输入当前旧密码
- 输入新密码
- 确认新密码
常用附加命令
- 查看user用户信息
bash
id user
- 锁定user账号(禁止登录)
bash
passwd -l user
- 解锁user账号
bash
passwd -u user
- 强制用户下次登录必须改密码
bash
chage -d 0 user
单用户模式的情况
如果你现在还在单用户chroot /sysroot环境内:
bash
# 进入真实系统
chroot /sysroot
# 修改user密码
passwd user
# 如果SELinux开启,依然需要执行
touch /.autorelabel
exit
reboot
⚠️ 注意:CentOS默认密码复杂度策略,太短的密码会拒绝。可以设置长一点密码,或者临时关闭复杂度(教学实验环境)。