wsl 上の Linux でパスワードを忘れて sudo hogehoge
などができなくなってしまったので、その対処を行った記録です。
root ユーザーになって強制的にパスワードを変更します。
root になるので、なんらかのミスで sudoers から消してしまった、などという場合にも有効です。
今回は ubuntu 18.04 で実施しましたが、他のディストリビューションでも同様の手順で回復させることができると思います。
実施方法の確認
cmd.exe を実行して普通のコマンドプロンプトを開いて、wsl --help
と入力すると、以下のようなヘルプが出ます。
使用法: wsl.exe [option] ...
オプション:
-d, --distribution <ディストリビューション名>
指定したディストリビューションを起動します。
-e, --exec <コマンド ライン>
指定された Linux コマンドを実行します。残りの引数は
実行するコマンド ラインとして使用されます。
-u, --user <ユーザー名>
指定したユーザーとして実行します。
--help
この使用法の情報を表示します。
--
引数の解析を停止し、残りの引数を Linux プロセスに渡します。
実際にやってみる
help の通りに wsl -u root
を実行すると、
root@pc:~#
のようにrootユーザーでログインできました。
あとは、普通のrootでの操作と同様、 passwd username
を実行し、画面に従って新しいパスワードを設定すれば大丈夫でした。