Linux中在忘记系统密码后,可用以下操作修改重置
1、重启操作系统,快速按e进入GRUB(grand unified theories次引导加载/内核编辑模式)界面
2、在指定位置输入rd.break,接着Ctrl+x重启程序
在Linux的启动过程中,可以使用 rd.break 来中断initramfs执行过程,并进入一个应急shell。 这允许你修改系统文件,例如重新设置一个新密码。
3、在应急shell中执行以下命令
mount -o remount,rw /sysroot
重新挂载 /sysroot 分区为读写模式。在Linux系统中,通常 /sysroot 是一个临时的根文件系统,特别是在修复系统时。重新挂载为读写模式是为了确保我们能够修改文件,例如更改密码文件。
mount | grep sysroot
查看是否重新挂载
chroot /sysroot/
它会将当前进程的根目录改变为指定目录下的根目录。在这里,chroot /sysroot/ 将系统的根目录切换到 /sysroot 下,使得在这个环境中执行的命令作用于 /sysroot 目录下的文件系统,而不是当前运行系统的根目录。这是为了确保我们修改的是被修复系统的文件,而不是当前正在运行的系统的文件。
echo 123 | passwd --stdin root
将 root 用户的密码设置为 123。通过管道 | 将 echo 命令的输出作为 passwd 命令的输入,–stdin 参数告诉 passwd 命令从标准输入中读取新的密码。在修复系统时,有时需要重置或者修改 root 用户的密码,以便进入系统后续操作。
touch /.autorelabel
更新文件的时间戳或创建新文件。在这里,创建 .autorelabel 文件是为了告诉 SELinux 在下次系统启动时重新标记所有文件的安全上下文。这是因为修复文件系统后,文件的内容可能已经改变,需要重新适配 SELinux 的安全上下文。
最后执行两次exit
即可完成修改