Linux系统跳过密码登录

一、引导系统

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进程。 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangsh_1992

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值