Linux忘记root密码咋整

443 阅读3分钟
  • 基于CentOS 6.9
  • 实验环境用虚拟机vmware

1. 开机或重启后在如下提示界面敲any键

image.png

2. 进入系统选择界面

image.png

对菜单简单说明

  • ↑和↓键选择系统(你要启动的),选中的高亮(泛白)
  • 敲回车启动选中的系统
  • 按e,表示在启动前编辑命令
  • 按a,表示在启动前更改内核参数
  • 按c,表示一个命令行工具

3. 按e编辑

image.png

菜单说明:

  • 按b,启动
  • 按o,向下新增一行(O上面新增一行,类似于VI命令模式)
  • 按d,移除选中行
  • 按ESC(escape),可以返回主菜单!

4. 移动到第二行,再按e

第二行即上图的kernel /vmlinuz-2.6.32 ... 那一行

image.png

按e,进入如下界面

image.png

5. 在quiet后面输入空格,1,回车

image.png

1 是什么意思?后面再说。

6. 按ESC返回上级菜单,再按b

image.png

7. 进入系统

image.png

此时发现我们无需输入密码就登录到了系统中,这时候就可以输入passwd进行root密码的修改了,而且无需输入原来的密码。 但这里的一个细节是,读取的文件有点特别(参见我之前写的一篇文章)

引申

1 是什么意思?

看这个图片

image.png

我们知道我们现在进入的是单用户模式。 1就是single user mode的意思。 有的教程在quiet后面输入的Single,S都是类似的意思

/etc/inittab

系统的模式在这个文件中有介绍 我们首先通过init 5 切换图形界面模式

image.png

**读取的文件为何是这几个呢?为何少了2个呢?**你知道吗。

看看/etc/inittab都是什么内容?

# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
# 
id:5:initdefault:

这就是系统的模式,分7个级别

  • 0 关机(不要默认到这里)
  • 1 单用户模式 (我们用的就是这个)
  • 2 多用户,不带NFS(跟3类似,不带网络)
  • 3 多用户模式(文字模式)
  • 4 不使用(保留?)
  • 5 图形界面(X11)
  • 6 重启(不要默认到这里)

最后一句是系统默认的模式

id:5:initdefault:

此处的语法很多很复杂,不过我们一般不涉及

相关命令

runlevel

显示系统当前的运行级别和之前的运行级别

[root@testing ~]# runlevel 
S 5

init

级别切换,比如

init 3 #切换到文字模式
init 6 #重启,跟reboot,shutdown -r now类似
init 0 #关机,跟shutdown -h now,halt,poweroff类似

chkconfig

[root@testing ~]# chkconfig --list
NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
abrt-ccpp       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off

这个命令可以看到有0-1-2-3-4-5-6,嗯,就是系统的7个level,显示的是这些服务在某个级别是否默认启动,跟我们windows下的服务管理类似。

说在最后

  1. 有个同学说直接init 1不就行了?脑洞大开^.^ 如果你可以执行init 的话,那你干脆直接passwd修改密码算了,要输入原密码?不需要的。