我们知道,root用户在Linux中是相当重要的,其地位如同Windows中的Adminstrator
有了root权限我们还能修改其他用户的密码,可是,如果root用户的密码丢失该怎么办?
不用担心,解决办法很简单,但还需理解运行级别和密码之间的微妙关系
注:以redhat为基础发行的版本都可使用此方法,此处以CentOS做实验
第1步:进入grub菜单,在需要启动的系统选项上按下 e
第2步:选择第2行以kernel开头的选项,再次按下e
第3步:编辑最后一行,在末尾加上1(用运行级别1的方式启动,稍后讲解为什么是1),按Enter
第4步:回到grub菜单后,按下b启动系统
看第一行,我们以single user模式成功登录系统,直接就是root用户
然后,我们用passwd修改密码即可,简单吧~
但是,知道如何找回root用户密码是不够的,难道你不奇怪为什么刚刚要在编辑启动项的时候加 1 吗?
此处涉及到了/etc/inittab这个文件,只要Linux一启动便会自动加载它
下面来看看内容
以#开头的都是注释文件,真正有意义的是最后一行,其中的3就代表着当前系统所使用的运行级别
那么,这0~6代表的7个选项各是什么意思呢?
0 关机
1 单用户模式,直接以root用户登录,不需要密码
2 多用户,但没有网络服务
3 多用户,有网络服务
4 未使用,保留给用户自定义
5 图形界面
6 系统重启
我们只需替换一下文件末行的数字3,就能更换运行级别了
但,需要注意的是,上面很明确的标识了0和6是不可以作为默认运行级别的
因为一旦开机之后,系统便会自动加载运行级别,然后不停的 关机/重启
此外,你可以直接在命令行中试试 init 6 ,看看是不是真的重启了
倘若真有坏人恶意修改了inittab文件,你只需回到上面的步骤,在grub中启动到单一模式(别忘了,kernel那一行末尾加1)
然后改回 etc/inittab 文件即可