Linux系统跳过密码登录
一、引导系统RHEL7的标准引导系统是GRUB2,RHEL6默认使用GRUB1,这里主要讲GRUB2。在Linux系统开机选择内核时,按下e进入内核引导参数的编辑菜单,找到以linux16开头的一行,在行末添加更多的命令。例如,在行末尾添加system.unit=emergency.target,然后按Ctrl+X,则系统将会以紧急目标模式启动。如果在系统引导到GUI环境中出现问题,可以在内核命令
一、引导系统
RHEL7的标准引导系统是GRUB2,RHEL6默认使用GRUB1,这里主要讲GRUB2。
在Linux系统开机选择内核时,按下e进入内核引导参数的编辑菜单,找到以linux16开头的一行,在行末添加更多的命令。例如,在行末尾添加system.unit=emergency.target,然后按Ctrl+X,则系统将会以紧急目标模式启动。
如果在系统引导到GUI环境中出现问题,可以在内核命令行末尾加入system.unit=multi-user.target,若引导成功,则会登录到命令行模式。
若系统出现严重故障,无法引导到rescure模式,可以通过另外两种方式。一种是system.unit=emergency.target,以只读模式访问文件系统;另一种是init=/sysroot/bin/sh,启动shell并以只读模式挂载root文件系统,不需要口令。
使用rescure和emergency模式都需要root密码进行登录,若忘记密码,则需要在内核命令行的末尾添加init=/sysroot/bin/sh或者rd.break。rd.break指令会在正确挂载root文件之前中断引导进程,init=/sysroot/bin/sh是内核启动过程中将系统安装的分区挂载到/sysroot目录下。此外,init=/bin/sh是内核启动过程中临时文件系统内的/bin/sh文件。
二、恢复root密码
第一种方式:
(1)在Linux系统开机选择内核时,按下e进入内核引导参数的编辑菜单,找到以linux16开头的一行,在末尾编辑,增加init=/sysroot/bin/sh或者rd.break;
(2)按Ctrl+X引导系统,以读写模式重新挂载root的/sysroot文件系统,将根目录改为/sysroot;
# mount -o remount,rw /sysroot
# chroot /sysroot
(3)通过echo xxx|passwd --stdin root,修改root密码,或者输入passwd,交互修改;注:若操作系统为中文环境,内核参数末尾添加为rd.break时交互界面为乱码。
(4)为确保SELinux给/etc/passwd添加正确的标签,执行touch /.autorelabel;
(5)执行exit退出chroot状态,再执行一次exit重新引导系统。
第二种方式:
(1)在Linux系统开机选择内核时,按下e进入内核引导参数的编辑菜单,找到以linux16开头的一行,将ro修改为rw,在末尾增加init=/bin/sh,指定shell环境;
(2)通过echo xxx|passwd --stdin root,修改root密码,或者输入passwd,交互修改;
(3)执行exec /sbin/init 正常启动init进程。
更多推荐
所有评论(0)