Windows 10环境下Ubuntu终端重置用户密码

tpi*_*nto 2 password password-recovery windows-10

我在 Windows 上使用 Ubuntu,从 Microsoft Store 下载。我创建了一个用户密码,但似乎我忘记了它或输入了错误的密码。对于 sudo 命令,我的用户密码不起作用。

由于我无法使用 Grub 以 Linux 身份重新启动系统来重置密码,是否有其他方法可以重置我的用户密码而无需重新安装应用程序(我已经设置了多个应用程序)?

小智 5

当我自己遇到这种情况并最终解决它时,这真的很棘手。

  1. 首先启动“Ubuntu”并输入cat /etc/passwd/并记下数字 UID,然后退出终端。
    就像下面在终端中一样

    mandheer@WKWIN1754031:~$ cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    mandheer:x:1000:1000:,,,:/home/mandheer:/bin/bash
    
    Run Code Online (Sandbox Code Playgroud)
  2. 记下“root”用户和登录用户的用户 ID(本例中为“mandheer”)

    • 根:x: 0:0 :根:/根:/bin/bash
    • 曼德赫:x: 1000:1000 :,,,:/home/曼德赫:/bin/bash
    • 对于root用户来说是0,对于mandheer用户来说是1000

    WSL(Linux 的 Windows 子系统)使用注册表来识别一些值,包括初始启动时登录的用户。

  3. 只需继续win+R,然后键入regedit将打开注册表编辑器导航到: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

  4. 检查已安装的发行版并导航到“Ubuntu”发行版。

  5. 然后,导航至"DefaultUid"

    • 检查当前值,必须设置为1000十进制或0x3e8十六进制
    • 为用户将"DefaultUid"值设置0为十进制root
    • 退出注册表编辑器
  6. 打开“Ubuntu”,它应该以 root 登录的方式启动。

    • 然后运行命令,passwd <User_name>例如#$passwd mandheer
      输入新密码并重新输入密码。

      bash#>passwd <existing username> and press Enter  
      New password: <type your password here>  
      Retype password: <re enter password here>  
      
      Run Code Online (Sandbox Code Playgroud)
  7. 您现有的用户名密码现已重置为新密码。

    • 退出命令提示符
  8. 对现有用户重复步骤 3 至 5
    • 意味着,转到寄存器编辑器并将“DefaultUid”设置为先前的值,例如用户1000的十进制mandheer
  9. 再次启动Ubuntu终端,它应该使用您现有的用户登录,而不要求输入密码。
    • 键入$sudo su以获得 root 访问权限。
    • 按照上述步骤 6 输入新设置的密码。