我已经在 Windows 10 上安装了 Linux Bash(可从 Microsoft 获得),但我忘记了密码。
我已经寻找解决方案,但我只发现一些建议,涉及在系统启动之前执行某些操作,例如访问恢复模式,但在这种情况下这不起作用,因为 Ubuntu 只是 Windows 系统内的一个应用程序,没有自己的启动过程。
我如何重置密码?
答案1
- 运行
bash
并记下你的 Linux 用户名(不需要与你的 Windows 用户名匹配),请参阅我如何才能找到我的用户名? - 如果 Ubuntu 上的 Bash 正在运行,请关闭它(否则下一个命令将失败)。
在 Windows 管理命令提示符(Super+ X,A)中将默认用户更改为 root:
ubuntu config --default-user root
如果你在 WSL 中使用 Ubuntu 18.04,则命令已更改为ubuntu1804
,因此
ubuntu1804 config --default-user root
- 现在,Windows 上的 Ubuntu 上的 Bash 可以让你以 root 身份登录,而无需输入密码
使用
passwd
Bash中的命令更改用户密码(要重置其密码的用户):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+ X,i)中,您可以使用以下方式登录 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 也始终以我的用户身份打开。
因此我做了这个,它起作用了:
编辑此文件(在记事本或记事本++中):
%localappdata%\lxss\rootfs\etc\shadow
找到你的普通用户,例如:
user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
并简单地删除哈希部分(以下部分)
$jsdjksadgfhsdf.saflsdf.sadf.safd
你会看到一个不同的哈希值 - 我希望:)所以它应该看起来像:
user1::17299:0:99999:7:::
保存文件
再次以 root 权限启动 Bash 并设置密码
sudo bash passwd <your-user-name>
您现在可以设置新密码,而无需输入旧密码。
答案4
我也需要在 Windows 10 中重置密码,我有 WLS 1
1-检查您的 linux/ubuntu 名称,列出文件夹:
%userprofile%\AppData\Local\Microsoft\WindowsApps
就我而言我找到了 Ubuntu1604.exe,所以我将使用ubuntu1604就像下一步的名称。
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,检查并享受。