Linux密码重置

今天看到了一篇写如何破解Linux密码的文章,刚开始还不信,怎么会那么简单就可以破解,没想到真的可以。至少在centos和ubuntu上我实验确实是可以破解(是在不需要知道原密码的情况下直接破解)。所以这里就简单做个笔记了,在忘记了系统密码时还是非常有用的啦。


当然了,实验的前提是使用grub来启动系统的,而我使用的refind则不知道怎么进入编辑模式,所以是在虚拟机下实验的。

方法一:rd.break

rd:ramdisk,the initial ramdisk(initrd) environment.

  1. 在系统进入grub菜单时,在需要重置密码的选项上按 e 进入编辑模式

  2. 在if….fi语句的下一行按end来到行的末尾,并在末尾添加

    1
    rd.break
  3. ctrl+x 进入shell

  4. 重新挂载系统并赋予读写权限(ls查看系统跟目录为 /sysroot 所以需要挂载它)

    1
    mount -o remount,rw /sysroot
  5. 切换到 root 目录

    1
    chroot /sysroot
  6. 重置密码

    重置root密码

    1
    passwd

    或者可以重置其它用户密码

    1
    passwd 用户名
  7. selinux 生效

    1
    touch /.autorelabel
  8. 退出重启

    1
    exit && reboot

方法二:init

init:initial environment.

  1. 在系统进入grub菜单时,在需要重置密码的选项上按 e 进入编辑模式

  2. 在if….fi语句的下一行按end来到行的末尾,并在末尾添加

    1
    init /bin/sh		#当然了也可以换成别的shell,比如bash
  3. ctrl+x 进入shell

  4. 重新挂载系统并赋予读写权限(ls查看系统跟目录为 / 所以需要挂载它)

    1
    mount -o remount,rw /
  5. 重置密码(由于是根目录所以不需要切换)

    重置root密码

    1
    passwd

    或者可以重置其它用户密码

    1
    passwd 用户名
  6. selinux 生效

    1
    touch /.autorelabel
  7. 进入系统

    1
    exec /sbin/init

    或者重启

    1
    exec /sbin/reboot