重置密碼的操作也很簡單,經過查詢資料,可將步驟大致分為 3 步:

  1. 將 Linux 子系統的默認賬戶改為 root
  2. 利用 root 賬戶重置 Linux 子系統賬戶的密碼
  3. 將 Linux 子系統的默認賬戶修改回之前的賬戶

很簡單吧,大部分的博文都是這樣搞的,但是在我這卻第一步都沒走通,遇到的問題和解決方法在后面會提及。

默認賬戶改為 root#

首先查看自己當前安裝了哪些 Linux 子系統,找到忘記了密碼的子系統,使用管理員身份打開 cmd 執行(下同):

> wsl -l
適用于 Linux 的 Windows 子系統分發版:
Debian (默認)
Ubuntu

下面就以 Debian 為例說明如何將默認賬戶修改為 root:

> debian config --default-user root

這一步我就出現了問題:

The system cannot find the file C:\Users[USERNAME]\AppData\Local\Microsoft\WindowsApps\debian.exe.

但是我執行 where debian 得到的結果確是是上面那個路徑,我又用 unbuntu 試了一下也是不行,讓我很是不能理解,于是我打進敵人內部,到達那個路徑下,發現 debian.exe 文件和 ubuntu.exe 文件確實都是存在的,但它們的文件大小都是 0:

wsl-linux-subsystem-exe-not-work.png

但是我的 wsl2 中的 Linux 子系統確實也沒問題,于是想到它不是我的菜,于是我使用 Everything 搜索了一下 “debian.exe”,發現了另一個結果,路徑類似于:

C:\Program Files\WindowsApps\TheDebianProject.DebianGNULinux_1.11.1.0_x64__[HASH]\debian.exe

所以它才是執行命令的主體,于是我在 cmd 中定位到此路徑下,再次執行上面的命令后結果正常:

> cd C:\Program Files\WindowsApps\TheDebianProject.DebianGNULinux_1.11.1.0_x64__[HASH]
> debian config --default-user root

此時打開 Debian 子系統,可以發現賬戶變成了 root。

變更普通賬戶密碼#

這一步是 Linux 中基礎的密碼重置操作,注意需要在 Debian 子系統中操作,除此之外沒什么幺蛾子:

wsl-linux-subsystem-reset-passwd.png

將默認賬戶從 root 修改為普通賬戶#

最后一步也很簡單,相當于重復第一步,也是在 cmd 中執行,只不過將賬戶名改一下即可:

# 還是在切換到之前那個文件夾
> cd C:\Program Files\WindowsApps\TheDebianProject.DebianGNULinux_1.11.1.0_x64__[HASH]
# 將 lwz 換成自己的賬戶名
> debian config --default-user lwz

到此就大功告成了。

其他注意事項#

除了第一步可能出現的問題之外,可能還會遇到多個版本的問題,如多個 Ubuntu 版本,如 18.04、20.04版本等,在 cmd 中切換默認賬戶時,不能使用 ubuntu.exe 命令,而是要使用 ubuntu1804.exe 和 ubuntu2004.exe 等:

> ubuntu1804 config –default-user root
> ubuntu2004 config –default-user root

參考#

  • https://itsfoss.com/reset-linux-password-wsl/