虚拟机linux系统登录界面任意密码登录方法

简介

当虚拟机里的Linux在登录界面时,忘记密码了,不知道密码怎么直接进去呢?在不想用重启后用单用户重置密码的条件下,这里提供一种通用各种Linux发行版方法“可以”修改虚拟机里面的/etc/shadow文件中的账号密码,然后用你修改后的密码直接登录进去。

方法

  • 触发shadow文件缓存到内存
    先随意输入个密码回车,看到提示登录失败就可以。这是让它触发系统读取/etc/shadow载入缓存,这时点暂停虚拟机。
  • 定位shadow文件内存块
    通过找到虚拟机的内存文件,接下来winhex搜索shadow文件所在内存块的方法可以这样,比如里面有root,那么搜索root:$,然后搜索到的可能是root:$数字$后面一长串这种格式就对了,注意可能有多个疑似的要注意识别。这就是密码的hash串,随意密码修改,然后恢复虚拟机就能用你的密码登录了。
  • 修改密码
    清空密码可以清空:到下一个:之间内容,控制台直接空密码登录(远程SSH不允许空密码,然而控制台进去后再passwd命令随意改一个)。修改shadow文件需要注意调整排版,我们可以清空密码后把后面多余内容用0A 16进制替换,0A就是空行。指定密码的话,shadow的密码的hash串可以用linux下的mkpasswd命令,例如mkpasswd --method=md5,这样生成的串替换掉内存文件里面的多个疑似shadow缓存文件就可以了。如果你的串长度比内存里面的长可能麻烦点,短的话比较容易修改排版(因为可以用换行(0A)填充即可。

登录进去后你可以cat /etc/shadow 看该文件,就是被修改后的,这时原来的密码就反而是错的了,你“完事”了之后,修复缓存的方法:

echo 3 > /proc/sys/vm/drop_caches
让系统丢弃缓存,再cat /etc/shadow 看该文件内容就恢复了。

你可能感兴趣的:(linux,运维,服务器)