在 Windows 中重置 Ubuntu / Linux Bash 中的密码

在 Windows 中重置 Ubuntu / Linux Bash 中的密码

我已经在 Windows 10 上安装了 Linux Bash(可从 Microsoft 获得),但我忘记了密码。

我已经寻找解决方案,但我只发现一些建议,涉及在系统启动之前执行某些操作,例如访问恢复模式,但在这种情况下这不起作用,因为 Ubuntu 只是 Windows 系统内的一个应用程序,没有自己的启动过程。

我如何重置密码?

答案1

  • 运行bash并记下你的 Linux 用户名(不需要与你的 Windows 用户名匹配),请参阅我如何才能找到我的用户名?
  • 如果 Ubuntu 上的 Bash 正在运行,请关闭它(否则下一个命令将失败)。
  • 在 Windows 管理命令提示符(Super+ XA)中将默认用户更改为 root:

    ubuntu config --default-user root
    

如果你在 WSL 中使用 Ubuntu 18.04,则命令已更改为ubuntu1804,因此

ubuntu1804 config --default-user root
  • 现在,Windows 上的 Ubuntu 上的 Bash 可以让你以 root 身份登录,而无需输入密码
  • 使用passwdBash中的命令更改用户密码(要重置其密码的用户):

    passwd your_username
    
  • 在 Windows 命令提示符中将默认用户更改回普通用户

    ubuntu config --default-user  your_username
    

如果你在 WSL 中使用 Ubuntu 18.04,则命令已更改为ubuntu1804,因此

ubuntu1804 config --default-user your_username

观看完整视频以恢复您的密码 Windows 子系统 Linux https://youtu.be/dTR232yvDCE

注 1:视频中使用的子系统不是 Ubuntu,而是 Kali Linux。因此命令有所不同。

注意 2:如果你仍在使用周年更新附带的原始 Ubuntu 子系统,请使用命令运行。建议升级到通过Microsoft Store分发的子系统版本。)

答案2

微软对此有一个很好的帮助页面:WSL 用户文档

在 Windows PowerShell(Super+ Xi)中,您可以使用以下方式登录 Ubuntu root 帐户

wsl --user root

然后像平常一样更改密码,即使用以下命令更改当前用户(即 root 用户)的密码

passwd

或为另一个用户

passwd username

它会以交互方式要求您输入新密码(两次)。不需要 Windows 管理员权限。

如果你在 WSL 中安装了多个发行版,那么你可以使用以下命令列出已安装发行版的名称

wsl -l

然后使用发行版的名称指定你要登录到哪个发行版,例如登录到 Ubuntu 20.04:

wsl -d Ubuntu-20.04 --user root

答案3

重要的 这个答案 (a) 仅适用于较旧的 WSL1,(b) 已过时,因为它引用了 WSL1 不再使用的路径,甚至 (c) 最重要的是,可能会导致文件系统损坏,微软。有关更改密码的正确方法,请参阅此处的其他答案。

上述方法无效。即使更改了默认用户,Bash 也始终以我的用户身份打开。

因此我做了这个,它起作用了:

  1. 编辑此文件(在记事本或记事本++中):

     %localappdata%\lxss\rootfs\etc\shadow
    
  2. 找到你的普通用户,例如:

     user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
    

并简单地删除哈希部分(以下部分)

    $jsdjksadgfhsdf.saflsdf.sadf.safd

你会看到一个不同的哈希值 - 我希望:)所以它应该看起来像:

    user1::17299:0:99999:7:::
  1. 保存文件

  2. 再次以 root 权限启动 Bash 并设置密码

      sudo bash
      passwd <your-user-name> 
    

您现在可以设置新密码,而无需输入旧密码。

答案4

我也需要在 Windows 10 中重置密码,我有 WLS 1

1-检查您的 linux/ubuntu 名称,列出文件夹:

%userprofile%\AppData\Local\Microsoft\WindowsApps

就我而言我找到了 Ubuntu1604.exe,所以我将使用ubuntu1604就像下一步的名称。 列出以下位置的文件:%userprofile%\AppData\Local\Microsoft\WindowsApps

2-以管理员权限打开CMD并运行(您将不会得到任何结果):

ubuntu1604 config --default-user root

3-启动你的 WSL,检查你是否具有 root 权限或者运行 whoami(你需要是 root 权限)并使用以下命令更改你的密码:

passwd [your-linux-username]

4-关闭你的 WSL 并返回到 CMD 窗口并设置回你的默认 Linux 用户名:

ubuntu1604 config --default-user [your-linux-username]

5-再次启动你的 WSL/Ubuntu/AnotherLinux,检查并享受。

相关内容