web-dev-qa-db-ja.com

WindowsのUbuntu / Linux Bashでパスワードをリセットする

Linux BashをWindows 10(Microsoftから入手可能)にインストールしましたが、パスワードを忘れました。

私は解決策を探しましたが、回復モードにアクセスするなど、システムの起動前に何かを行うことを含む提案のみを見つけましたが、このUbuntuはWindowsシステム内の単なるアプリケーションであり、独自のブートプロセス。

パスワードをリセットするにはどうすればよいですか?

184
Maheedhar K V
  • bashを実行し、Linuxユーザー名を書き留めます(これはWindowsユーザー名と一致する必要はありません)。 ユーザー名を調べるにはどうすればよいですか?
  • UbuntuでBashが実行されている場合は閉じます(または、次のコマンドが失敗します)。
  • Windows管理コマンドプロンプト(Super+X、 A)デフォルトのユーザーをrootに変更します:

    ubuntu config --default-user root
    

WSLでUbuntu 18.04を使用している場合、コマンドはubuntu1804に変更されているため、

ubuntu1804 config --default-user root
  • Windows上のUbuntuでのBashは、パスワードを要求せずにrootとしてログインします
  • Bashでpasswdコマンドを使用して、ユーザーパスワード(パスワードをリセットするユーザー)を変更します。

    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を介して配布されたサブシステムバージョンへのアップグレードが推奨されます。)

315
Tmu

上記は機能しませんでした。デフォルトのユーザーを変更した後でも、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を起動し、パスワードを設定します

     Sudo bash
     passwd <your-user-name> 
    

    以前のパスワードを入力しなくても、新しいパスワードを設定できるようになりました。

50

Editこれは、ストアにインストールされた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
27
Richard Szalay

ルートパスワードを紛失した人にとって、私にとってはうまくいったのは、Windowsストア経由でUbuntu 18.04 LTSにアップデートすることでした。 Windowsストアには2つの異なるオプションがあります。

  1. Ubuntu
  2. Ubuntu 18.04 LTS(これを選んでください

現在のバージョンを確認するには、任意のユーザーとして次を実行します。

コマンドプロンプトで、次のように入力します。

cat /etc/*release

出力に次のような行が表示されるはずです。

DISTRIB_RELEASE=16.01

その場合は、間違いなく 18.04に更新 になり、新しいUNIX資格情報を作成するように求められます。

0
Janac Meena