Mah*_*K V 293 password-recovery windows-subsystem-for-linux
我已在 Windows 10(可从 Microsoft 获得)上安装 Linux Bash,但我忘记了密码。
我已经搜索了一个解决方案,但我只找到了涉及在系统启动之前做一些事情的建议,比如访问恢复模式,但在这种情况下这不起作用,因为这个 Ubuntu 只是 Windows 系统中的一个应用程序,没有它自己的启动过程。
如何重置密码?
小智 456
bash
并记下您的 Linux 用户名(这不需要与您的 Windows 用户名匹配),请参阅如何找出我的用户名?在 Windows 管理员命令提示符 ( Super+ X, A) 中,将默认用户更改为 root:
ubuntu config --default-user root
Run Code Online (Sandbox Code Playgroud)如果您在 WSL 中使用 Ubuntu 18.04,则命令已更改为ubuntu1804
,因此
ubuntu1804 config --default-user root
Run Code Online (Sandbox Code Playgroud)
passwd
在 Bash 中使用命令更改用户密码(您要重置其密码的用户):
passwd your_username
Run Code Online (Sandbox Code Playgroud)在 Windows 命令提示符下将默认用户更改回普通用户
ubuntu config --default-user your_username
Run Code Online (Sandbox Code Playgroud)如果您在 WSL 中使用 Ubuntu 18.04,则命令已更改为ubuntu1804
,因此
ubuntu1804 config --default-user your_username
Run Code Online (Sandbox Code Playgroud)
观看完整视频以恢复您的密码 Windows 子系统 Linux https://youtu.be/dTR232yvDCE
注1:视频中使用的子系统不是Ubuntu,而是Kali Linux。因此命令的不同。
注意 2:如果您仍在使用周年更新附带的原始 Ubuntu 子系统,请使用命令lxrun。建议升级到通过 Microsoft Store 分发的子系统版本。)
Nob*_*ody 100
在 Windows PowerShell ( Super+ X, i) 中,您可以使用以下命令登录 Ubuntu root 帐户
wsl --user root
Run Code Online (Sandbox Code Playgroud)
然后像往常一样更改密码,即对于当前用户(即 root)使用
passwd
Run Code Online (Sandbox Code Playgroud)
或者对于另一个用户
passwd username
Run Code Online (Sandbox Code Playgroud)
它以交互方式要求您输入新密码(两次)。不需要 Windows 管理员权限。
如果您在 WSL 中安装了多个发行版,那么您可以列出已安装发行版的名称
wsl -l
Run Code Online (Sandbox Code Playgroud)
然后使用发行版的名称来指定您要登录到哪个发行版,例如登录到 Ubuntu 20.04:
wsl -d Ubuntu-20.04 --user root
Run Code Online (Sandbox Code Playgroud)
小智 73
以上没有奏效。即使更改了默认用户,Bash 也总是以我的用户打开。
所以我做了这个,它起作用了:
编辑此文件(在记事本或记事本++中):
%localappdata%\lxss\rootfs\etc\shadow
Run Code Online (Sandbox Code Playgroud)找到你的普通用户,例如:
user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
并简单地删除哈希部分(下面的部分)
$jsdjksadgfhsdf.saflsdf.sadf.safd
Run Code Online (Sandbox Code Playgroud)
你会看到一个不同的哈希 - 我希望 :) 所以它应该看起来像:
user1::17299:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)保存文件
使用 root 权限再次启动 Bash 并设置您的密码
sudo bash
passwd <your-user-name>
Run Code Online (Sandbox Code Playgroud)
您现在可以设置新密码而无需输入前一个密码。
Ric*_*lay 28
编辑如果您有商店安装的 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
Run Code Online (Sandbox Code Playgroud)
我也需要在 Windows 10 中重置密码,我有 WLS 1
1- 检查您的 linux/ubuntu 名称,列出文件夹:
%userprofile%\AppData\Local\Microsoft\WindowsApps
Run Code Online (Sandbox Code Playgroud)
就我而言,我找到了 Ubuntu1604.exe,因此我将在下一步中使用ubuntu1604 之类的名称。
2- 以管理员权限打开 CMD 并运行(您将一无所获):
ubuntu1604 config --default-user root
Run Code Online (Sandbox Code Playgroud)
3- 启动您的 WSL,检查您是否获得了 root 权限或运行 whoami(您需要是 root)并使用以下命令更改您的密码:
passwd [your-linux-username]
Run Code Online (Sandbox Code Playgroud)
4- 关闭您的 WSL 并返回 CMD 窗口并设置回您的默认 linux 用户名:
ubuntu1604 config --default-user [your-linux-username]
Run Code Online (Sandbox Code Playgroud)
5- 再次启动您的 WSL/Ubuntu/AnotherLinux,检查并享受。
归档时间: |
|
查看次数: |
276421 次 |
最近记录: |