• Linux忘记root密码解决方案


    忘记Linux root密码时,只需重启Linux系统,然后引导进入Linux的单用户模式(init 1),由于单用户模式不需要输入登陆密码,因此,可直接登陆系统,修改root密码即可解决问题。需要说明的是,CentOS6和CentOS7下修改root密码的方式是不同的。

    一、RHEL/CentOS6.x及之前修改root密码

    操作步骤如下:

    1.重启系统,待系统启动到grub引导菜单时,按Esc键,找到当前系统引导项。如果有多个可用内核,则会有多个引导选项。

    2.通过方向键定位到需要使用的系统引导内核选项上,然后按键盘e键,进入编辑状态。

    3.然后通过上下方向键,选中带有kernel指令的一行,继续按e键,编辑该行,在行末尾价格空格,然后添加single。

    4.修改完成后,按Enter键,返回到刚才的界面。

    5.最后按b键,系统开始引导。

    这样就切换到单用户模式下,单用户模式与Windows的安全模式类似,只启动最基本的系统,网络以及应用服务均不启动。单用户模式启动完毕,系统自动进入命令行状态下,输入passwd,系统提示输入两次新的密码,就可修改密码。

    如果需要正常启动系统,只需输入init 3,切换到多用户模式下。用root登陆系统即可。

    二、RHEL/CentOS7中修改root密码

    在CentOS7.0版本之后,Linux的机制发生了变化。在系统引导方面,使用grub2代替了之前的grub的引导,init初始化程序也更换成了systemd初始化程序,随之而来,root密码重置的方法也发生了变化。

    操作步骤如下:

    1.重启系统,待系统启动到grub2引导菜单时,找到当前系统引导选项(如果有多个可用内核,则会有多个引导选项),按e键,进入编辑模式。

    2.然后通过上下方向键将光标定位到kernel引导行所在行尾,然后添加以下内容

     init=/bin/sh

    3.添加完成,按Ctrl+x组合键启动shell引导,最后进入单用户模式

    4.要挂载根分区为可读写模式,执行如下命令

    mount -o remount,rw /

    5.这里需要注意,如果系统已开启了SELinux,还需要在根分区中创建autorelabel文件,否则系统无法正常启动。

    查看SELinux是否开启

    /usr/sbin/sestatus

    (如果SELinux开启),创建autorelabel文件(我在操作时,检测到SELinux未开启,但也进行了下面的操作,否则最后一步可能无法重启。不知道不能重启的原因是不是这里) 

    touch /.autorelabel

    6.然后就可以执行passwd命令重置密码了。

    passwd

    提示输入两次新密码即可。

    7.密码修改完后,需要重启

    直接执行reboot命令已经无效,需要输入全路径命令

    exec  /sbin/init
    或
    exec  /sbin/reboot

    这样就完成了密码重置,正常登陆系统,查看密码是否修改成功。

    (注意:我在输入exec /sbin/init命令后,虚拟机中centos一直没反应,等了差不多一两分钟后才有反应。)

    参考:

    《循序渐进Linux》第2版 10.1.2章节 P326

  • 相关阅读:
    【dp】船
    【dp】PKU 1952 buy low,buy lower
    【dp】合唱队形
    【dp】导弹拦截
    【dfs】POJ1321 棋盘问题
    工程师工作与学习的模式
    如何进行大规模在线数据迁移(来自Stripe公司的经验)
    Laravel事件监听器listener与事件订阅者Subscriber的区别
    微信小程序时间处理问题
    [翻译] Facebook HHVM 团队封闭开发三周成果展
  • 原文地址:https://www.cnblogs.com/rouqinglangzi/p/10624363.html
Copyright © 2020-2023  润新知