当前位置: 首页>>技术教程>>正文


在Windows中,在Linux Bash中重置密码

, ,

问题描述

我已经在Windows 10上安装了Linux Bash(可以从Microsoft获得最新的更新),但是现在我忘了密码已经很久了。

我检查了许多网站,并说它是通过引导选项,在这种情况下不起作用,因为这是Windows系统。

我怎样才能重置我的密码?

最佳解决方案

  1. 运行bash并记下您的Linux用户名(这不需要与您的Windows用户名匹配),请参阅How can I find out my user name?

  2. 在Windows管理命令提示符下(Super + XA)将默认用户更改为root:

    ubuntu config --default-user root
    
  3. 现在,Windows上的Ubuntu上的Bash会以root身份登录,而不会询问密码

  4. 在Bash中使用passwd命令更改用户密码(要重置其密码的用户):

    passwd your_username
    
  5. 在Windows命令提示符下将默认用户更改回普通用户

    ubuntu config --default-user  your_username
    

次佳解决方案

以上不起作用。即使在更改默认用户后,bash也会随我的用户一起打开。所以相反,这工作:

  1. 编辑文件(在记事本或记事本+ +):

    %localappdata%\lxss\rootfs\etc\shadow
    
  2. 找到你的普通用户,例如:

    user1:$jsdjksadgfhsdf.saflsdf.sadf.safd:17299:0:99999:7:::
    

    并简单地删除哈希部分(下面的部分)

    $jsdjksadgfhsdf.saflsdf.sadf.safd
    

    你会看到不同的散列 – 我希望:),所以应该看起来像:

    user1::17299:0:99999:7:::
    
  3. 保存文件

  4. 再次启动bash

  5. sudo bash

  6. 密码这将要求您的新密码,而不需要以前的密码。

第三种解决方案

要添加到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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/537.html,未经允许,请勿转载。