Visual Studio Code で WSL 2 と連携してろくに設定せずに Terminal を開くと root でシェルが起動してしまったりします。それでは困るので以下のコマンドでデフォルトユーザーを設定することになります。
ubuntu config --default-user blogger323
ところが、です。私の場合は以下の記事を参考にしてディストリビューションの位置を変えたり 2つめの WSL インスタンスを作ったりしています。
私の場合、Ubuntu を export 後、Hetarena という名前で import して 2つめのインスタンスを作りました。さて、この 2つめのインスタンスのデフォルトユーザーを変えるにはどうしたらよいでしょう?
hetarena config --default-user blogger323
の様なことをやっても当然のごとく “Command Not Found” なわけです。
ググっても答えは見つからず、結局レジストリ内を検索して見つけ出しました。以下のキーに Linux uid を設定することでデフォルトユーザーを指定できます。
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{distro-id}\DefaultUid
ここで distro-id はディストリビューション (WSL インスタンス) に割り当てられた ID です。DefaultUid と同じ階層に DistributionName というキーがあるのでこれで見分けることができます。
ちなみにレジストリキーでググって後から以下の Issue を見つけることができました。私は試していないですが、Linux ファイルシステムの設定ファイルに書く方法もあるようです。(追記: Microsoft のドキュメントを改めて確認すると記載があったのでこちらの方が正規の方法ですね!)