我已在Windows 10(可从Microsoft获得)上安装Linux Bash,但忘记了密码。
我一直在寻找解决方案,但是我只发现一些建议,这些建议涉及在系统启动之前做一些事情,例如访问恢复模式,但是在这种情况下将不起作用,因为此Ubuntu只是Windows系统中的一个应用程序,没有它自己的启动过程。
如何重设密码?
我已在Windows 10(可从Microsoft获得)上安装Linux Bash,但忘记了密码。
我一直在寻找解决方案,但是我只发现一些建议,这些建议涉及在系统启动之前做一些事情,例如访问恢复模式,但是在这种情况下将不起作用,因为此Ubuntu只是Windows系统中的一个应用程序,没有它自己的启动过程。
如何重设密码?
Answers:
bash
并记下您的Linux用户名(此名称不必与Windows用户名匹配),请参阅如何查找我的用户名?在Windows管理员命令提示符(Super+ X,A)中,将默认用户更改为root:
ubuntu config --default-user root
如果您在WSL中使用Ubuntu 18.04,则命令已更改为ubuntu1804
,因此
ubuntu1804 config --default-user 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:如果您仍在使用Anniversary Update随附的原始Ubuntu子系统,请使用命令lxrun。建议升级到通过Microsoft Store分发的子系统版本。)
lxrun
适用于WSL的Beta版。如果从应用程序商店安装ubuntu,则命令为ubuntu config --default-user root
。
Failed to set default user to: root
。
Error: 0x80070057 The parameter is incorrect
,因此最终遵循@ dr01的提示并ubuntu
在PowerShell中运行,然后在logout
,然后再次配置了默认用户。成功👍–
ubuntu1804
不是ubuntu
。希望这可以节省一些麻烦。
上面没有用。即使更改了默认用户,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>
现在,您无需输入上一个密码即可设置一个新密码。
shadow
文件的路径,可以使用以下PowerShell憎恶性:Get-ChildItem -Path C:\ -Filter shadow -Recurse -ErrorAction SilentlyContinue -Force
这是find /mnt/c/ -name shadow
执行和结果方面的疯狂详细版本。不需要提升的特权来编辑文件,但是在执行操作之前,请确保关闭bash窗口。
编辑如果您有WSL的商店安装发行版,则此方法不再起作用。
为了增加Tmu的答案,以下是一个Powershell脚本(gist),该脚本可自动执行该过程(包括自动检测当前的默认用户名)
# Resets the password for the default LXSS / WSL bash user
$lxssUsername = (Get-ItemProperty HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss).DefaultUsername
lxrun /setdefaultuser root
bash -c "passwd $lxssUsername"
lxrun /setdefaultuser $lxssUsername
对于那些丢失了root密码的人来说,对我有用的是通过Windows Store更新到Ubuntu 18.04 LTS。注意,Windows存储具有两个不同的选项:
要检查您的当前版本,请以任何用户身份运行以下命令:
在命令提示符下,输入:
cat /etc/*release
您应该在输出中看到一行:
DISTRIB_RELEASE=16.01
如果看到该消息,则绝对更新为18.04,它将提示您创建新的UNIX凭据。