修改密码的原理

        无论是Linux还是Windows亦或是MacOS系统,再或者是手机,路由器等任何设备,操作系统的登录密码都存放在某个存储介质上,一般都是与操作系统同在的存储介质,对于任何操作系统,只要将存放密码介质上的密码文件修改,就能实现密码的破解。

什么是Linux单用户模式

        Linux除了管理员创建的普通用户外,还有一些程序所创建的用户,查看/etc/passwd下就能发现这些用户,单用户就是只有root用户登录,系统中除了Linux内核进程意外就一个由root用户启动的进程。 

如何进入Linux单用户

开机进入这个界面后按e,进入grub配置界面 

 修改根文件系统ro为rw(只读修改为读写),修改init

 这里的init可以指定为任何shell,例如bash,sh等,例如:

init=/bin/bash

init=/bin/sh

init=/sysroot/bin/bash

init=/sysroot/bin/sh

这里sysroot是操作系统的根所挂载的目录;如果不加sysroot,内核将自动切换到真正的根目录,因此如果写成init=/sysroot/* 的格式,那么需要chroot或者是执行exec /sysroot/下的passwd文件,为了方便起见,不建议写sysroot。按照上图修改完后直接Ctrl+x,重新启动即可。

修改密码

接下来就很简单了直接修改密,然后touch / .autorelabel就行,如下图所示

 为什么要 touch /.autorelabel

        /.autorelabel是selinux中的概念,只有touch了,表示selinux放行修改密码的操作,但是在目标主机selinux已关闭的情况下,vmware中的虚拟机测试发现必须执行此操作,重置密码才能生效,而在kvm中进行测试则不需要执行此操作重置密码也能生效,因此这个可能是一个未知的bug。

Logo

更多推荐