这里列举了两种更改或者取消管理员密码登录Linux系统的方法,其实两种方法类似,都是想方设法跳过用户认定,直接更改用户文件、更改密码的过程。
为了跳过系统正常启动过程中的某些步骤,必须知道大致的系统启动流程是什么样的。大概情况如下:
加电---->BIOS--->启动介质--->先读第一个扇区,引导 MBR--->GRUB--->找到kernel加载到内存--->执行第一个程序init
单用户模式是从GRUB中跳过了用户认证,直接运行 bin/sh ,进而改root用户密码或者去掉密码。
救援模式是从BIOS中更改启动首选项,从系统光盘中引导系统启动,再回来更改root用户文件,达到更改密码或者去掉密码的目的。
法一:单用户模式
启动时,随便按一个键,空格即可(不能是回车),让其停留在如下界面
按e编辑,按上下键,将光标移至最后一页
在UTF-8后面添加init=/bin/sh
init=/bin/sh
根据上面提示,按Ctrl+x启动
成功执行后出现 sh-4.2#
输入mount -o remount,rw / (因为是要对文件直接进行更改,所以必须有读[r]和写[w]的权限)
现在可以改密码了,使用passwd更改密码,或者vi打开passwd文件,将用户密码标志位的x去掉,意为没有密码。
如果系统开启了SELinux(安全子系统),需要运行touch /.autorelabel命令,否则系统可能无法正常启动
输入 exec /sbin/int 或者 exec /sbin/reboot重启
法二:救援模式
将首选项更改为光盘(必须保证光盘中有系统镜像)保存,重启
选择最后一项,“问题解决”
选择救援系统
选择继续
选择OK,执行之后系统是从光盘这个路径上启动的,原来电脑上的系统文件放在 /mnt/sysimage 下,可以使用 chroot /mnt/sysimage 执行原系统的程序,但是执行之后需要退出,再从光盘这个系统这边对电脑进行重启等操作。
chroot /mnt/sysimage 执行原系统文件,这时可以使用passwd更改密码,或者vi打开passwd文件对密码标志位进行修改。
之后 exit 退出原系统,再reboot重启,进入BIOS将首选项改回硬盘就好。