当管理大量服务器时,出现忘记root密码的概率还是很高的。要解决这个问题也非常简单,只需要在重启Linux系统时,引导进入Linux的单用户模式就可以搞定。单用户模式与Windows的安全模式类似,只启动基本的系统,不启动网络、应用服务。由于单用户模式不需要输入登录密码,因此,可以直接登录系统,重新修改root密码。
先以CentOS7为例(GRUB2),进行如下操作:
-
重启系统,等到进入GRUB引导菜单时,按ESC,选择当前系统的内核,按E键进行编辑。
-
如下图,按↓键,找到
linux16
所在的行,然后在行尾添加init=/bin/sh,添加完成后,按<Ctrl+x>组合键启动引导,进入单用户模式 -
此时如果直接使用passwd命令修改root密码会出现如下错误。
-
修改密码前先要将根目录挂载为可读写模式(mount -o remount,rw /),再修改root密码。
-
注意,如果没有关闭selinux,那么需要再根目录创建autorelabel文件,否则无法正常进入系统,操作如下:
touch /.autorelabel
-
修改密码后可以重启服务器了,但是此时reboot命令是无效的,需要执行
exec /sbin/init
-
重启系统后,以新密码登录服务器。
注意,CentOS7以前版本使用的是GRUB,与GRUB2略有不同,但同样是通过引导进入单用户模式修改root密码。
-
在编辑系统引导内核时,需要找到带有
kernel
指定的行,然后再行尾加上空格,再添加single
选项。 -
修改完成后,按
ENTER
键,返回菜单,按B
键引导进入单用户模式。 -
输入
passwd
修改密码。 -
密码修改完成后,输入
init 3
进入多用户模式。 -
以新密码登录服务器。
以上就是解决登录Linux系统忘记root用户密码的解决方式。
欢迎大家关注我,更多Linux干货等着你!