<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="Linux系统忘记root密码解决办法">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2023-01-16 09:57<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
Linux系统忘记root密码解决办法

Debian Root密码忘记

开机 grub 菜单下进入单用户模式进行修改密码/修改系统文件。

解决过程

注：本教程适用于 Debian 7+ 8+ 9+

1. 首先。重启一下系统。在开机 grub 内核选择菜单那里，迅速按&ldquo;e&rdquo;。

2. 将光标移动到&ldquo;linux&rdquo;开头的那一行，将原来的&ldquo;ro&rdquo;改为&ldquo;rw&rdquo;，并在后面追加&ldquo;init=/bin/sh&rdquo;。改完后按 Ctrl+X 保存并启动系统。

3. 成功进入单用户模式。看到了熟悉的 #。

4. 输入passwd root重置密码。会要求输入两次。并且密码是看不到的。成功后会提示 successfully。

5. 好啦。硬重启系统。不要执行 exit，否则内核会 panic。

CentOS 重置 Root 密码

开机grub菜单下进入单用户模式进行修改密码/修改系统文件。

解决过程

注：本教程只适用于 CentOS 7+ / RHEL 7+ / Fedora 20+

1. 首先。重启一下系统。在开机 grub 内核选择菜单那里，迅速按&ldquo;e&rdquo;。

2. 将光标移动到&ldquo;linux 16&rdquo;开头的那一行，将原来的&ldquo;ro&rdquo;改为&ldquo;rw&rdquo;，并在后面追加&ldquo;init=/sysroot/bin/sh&rdquo;。改完后按 Ctrl+X 保存并启动系统。

3. 成功进入单用户模式。看到了熟悉的#。

4. 输入 chroot /sysroot 切换根目录。

5. 输入 passwd root 重置密码。会要求输入两次。并且密码是看不到的。成功后会提示 successfully。

6. 输入 touch /.autorelabel 更新一下系统信息。

7. 执行 exit 退出 chroot 模式。

8. 好啦。硬重启系统。不知道为什么在这个模式下是没有办法使用 reboot 命令的。只能硬重启系统了。

如果以上不能解决，可以使用下面方法修改，适用于最新系统：

1、编辑修改两处：ro改为rw,在LANG=en_US.UFT-8后面添加init=/bin/sh

2、按Ctrl+X启动，输入命令 passwd 修改密码

3、由于selinux开启着的需要执行以下命令更新系统信息,否则重启之后密码未生效

touch /.autorelabel

4、输入以下命令重启系统

exec /sbin/init

Ubuntu Root密码忘记

开机 grub 菜单下进入单用户模式进行修改密码/修改系统文件。

解决过程

注：本教程适用于 Ubuntu 16+ Ubuntu20+

1. 启动系统,在启动过程中,反复按Esc键或者shift键(反复按或者长按都可以),直到出现grub引导界面。

2.选第二行Ubuntu的高级选项菜单enter进入（有的版本显示的是Advanced options for Ubuntu）。

3.选择(recovery mode)，按e编辑Grub的启动提示符。

4.按e编辑Grub的启动提示符把ro后面的 recovery nomodeset改为 quiet splash rw init=/bin/bash 

5.修改完后，按ctrl+x或者F10启动系统，修改完后，按ctrl+x或者F10启动系统，然后就可以passwd命令修改密码。

6.重启系统就可以正常登录了。




参考：https://www.321002.com/259.html  

        https://blog.51cto.com/u_13753753/5806871

        Ubuntu1   Ubuntu2






总结：以上均为管理员或者有管理员权限的账号，比如root密码忘记，普通用户密码忘记可以直接用管理员权限账号直接修改。以上均为常规方法修改忘记密码的系统操作方法，也是官方的操作方法。

详细介绍Linux /etc/shadow文件

与Linux /etc/passwd文件不同，Linux /etc/shadow文件是只有系统管理员才有权利进行查看和修改的文件，系统管理员应该弄明白Linux /etc/shadow文件中每个字符段的相应的意义，清楚管理时的具体意义。

Linux /etc/shadow文件中的记录行与/etc/passwd中的一一对应，它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似，由若干个字段组成，字段之间用&ldquo;:&rdquo;隔开。这些字段是：

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

1）&ldquo;登录名&rdquo;是与/etc/passwd文件中的登录名相一致的用户账号

2）&ldquo;口令&rdquo;字段存放的是加密后的用户口令字，长度为13个字符。如果为空，则对应用户没有口令，登录时不需要口令；如果含有不属于集合{./0-9A-Za-z}中的字符，则对应的用户不能登录。

3）&ldquo;最后一次修改时间&rdquo;表示的是从某个时刻起，到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如在SCOLinux中，这个时间起点是1970年1月1日。

4）&ldquo;最小时间间隔&rdquo;指的是两次修改口令之间所需的最小天数。

5）&ldquo;最大时间间隔&rdquo;指的是口令保持有效的最大天数。

6）&ldquo;警告时间&rdquo;字段表示的是从系统开始警告用户到用户密码正式失效之间的天数。

7）&ldquo;不活动时间&rdquo;表示的是用户没有登录活动但账号仍能保持有效的最大天数。

8）&ldquo;失效时间&rdquo;字段给出的是一个绝对的天数，如果使用了这个字段，那么就给出相应账号的生存期。期满后，该账号就不再是一个合法的账号，也就不能再用来登录了。

下面是/etc/shadow的一个例子：

＃cat/etc/shadow

root:Dnakfw28zf38w:8764:0:168:7:::  （Dnakfw28zf38w就是加密后的root密码）

用linux的livecd启动系统，挂载硬盘后可以直接编辑shadow，两个：中间的加密root密码删掉，重启后就可以直接输入root回车实现免密码直接登录，登录后用passwd root修改root密码即可，此方法适用所有Linux系统。

建议尽量用官方grub修改启动的方法修改密码。修改shadow文件可能会造成其他问题，目前发现Debian系统可能会ssh无法登录。



常用Linux Live cd的地址


Ubuntu PE Live CD with MATE Desktop（一个精简的定制Ubuntu，体积小，使用非常方便）

GitHub：https://github.com/ghostplant/ubuntu-pe

Ubuntu PE for CDROM/USB:

Ubuntu 22.04 LTS Live PE (64-bit) (English + Chinese Simplified, ~506MB):

Download: https://github.com/ghostplant/ubuntu-pe/releases/download/ubuntu-22.04/jammy-mate-x86_64-20230108.iso

Ubuntu 20.04 LTS Live PE (64-bit) (English + Chinese Simplified, ~585MB):

Download: https://github.com/ghostplant/ubuntu-pe/releases/download/ubuntu-20.04/focal-mate-x86_64-20221002.iso

Ubuntu 18.04 LTS Live PE (64-bit) (English + Chinese Simplified, ~497MB, No WimTool Support):

Download: https://github.com/ghostplant/ubuntu-pe/releases/download/ubuntu-18.04/bionic-mate-amd64-20200222.iso

Ubuntu 16.04 LTS Live PE (64-bit) (English + Chinese Simplified, ~381MB, No WimTool Support):

Download: https://github.com/ghostplant/ubuntu-pe/releases/download/ubuntu-18.04/xenial-classic-amd64-20180303.iso

Ubuntu 22.04 LTS Live PE Terminal Core (64-bit) (English, ~145MB):

Download: https://github.com/ghostplant/ubuntu-pe/releases/download/ubuntu-22.04/jammy-core-x86_64-20221015.iso

Linux Mint（最常见的Ubuntu发行版，开箱即用）




Linux Mint(基于Ubuntu系统的定制版)

LMDE 5(基于Debian最新发行版的定制版)


国内的系统太多了，优麒麟，深度等定制版，还有puppy，tiny core linux等其他系统非常多，自己可以测试。

ESXI系统清除密码：使用任意Linux启动盘挂载Esxi系统分区，然后修改修改state.tgz里面的shadow文件，即可清除root密码，直接登录，建议使用上面bionic-mate-amd64-20200222.iso直接打开压缩包修改最简单。

当然也可以通过CentOS7系统的U盘启动或者Ubuntu系统的U盘启动，通过救援模式，和上面的livecd效果一样。


① 服务器通过U盘启动，进入shell命令行，选择&ldquo;Troubleshooting -&gt;&rdquo;选择&ldquo;Rescue a CentOS system&rdquo; 输入&ldquo;1&rdquo;，然后回车即可进入shell命令行

② 挂载ESXI的目录，修改/etc/shadow文件root用户为空密码

mkdir -p /mnt/sdax

mount /dev/sda5 mnt/sdax

cp /mnt/sdax/state.tgz /tmp

cd /tmp

tar xf state.tgz    #这个解压会解出一个local.tgz文件

tar xf local.tgz    #这个解压会解出一个在/tmp/etc文件夹

vi etc/shadow       #修改成下图，root为空密码

注意：如果/tmp/etc/shadow文件不存在，可从/etc/shadow拷贝过来。然后内容修改成下图即可

#修改完shadow文件后，再拷贝回去

cd /tmp

rm /tmp/state.tgz /tmp/local.tgz

tar czf local.tgz etc/

tar czf state.tgz local.tgz

cp state.tgz /mnt/sdax/

reboot

③ ESXI设备重启，后台登陆后修改新的密码

#按F2直接回车，通过空密码进行登陆

#Configure Password修改root登陆密码








</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
