🔖

WSL2 ディストリビューションの既定のユーザーを変更する

に公開

対象

rootユーザーでWSL2のLinuxディストリビューションが開いてしまって困っている。
またはPowerShellでのデフォルトユーザー変更が上手くいかないという人向けの記事だ
特に複数の環境を複製しては破棄している場合は重要

環境

  • Windows10 Version 22H2 (OS Build 19045.5011)
  • WSL2(Ubuntu) Ubuntu 11.4.0-1ubuntu1~22.04

デフォルトユーザー変更手順

何故公式に紹介されている方法で変更出来ないのか

Microsoft公式[1]で紹介されている手順は

<DistributionName> config --default-user <Username>

なのでこれで変更出来れば何も問題はないのだが
実はこの方法ではストアアプリとしてインストールしたディストリビューションのみしか変更できない、なんじゃそら
より厳密にはC:\Users\<YourUsername>\AppData\Local\Microsoft\WindowsAppsにexeファイルが生成されていないといけないそうだが、PATHを通す方法は調べても分らなかった。知っている方が居たら教えてください。
実はこの手順紹介の下に

という警告がこっそり書いてある。おそらく機械翻訳の為、意味の分からない文章になっているが
基本的にPowerShellコマンドによる既定ユーザー変更は無理だから直接ディストリビューション内のcofigを編集してね程度の意味だろう。

コンフィグファイルの編集[2]

\\wsl.localhost\<DistributionName>\etc\wsl.confに実体が存在する。
このファイルを開く方法は開く方法は色々あるが使用しているIDE等の環境に依存するので割愛する。
要はテキストファイルを探して編集するだけである。

無い場合は作ろう
当該ディストリビューションのShellを開いた状態で

$ cat << EOF > /etc/wsl.conf
[user]
default=user-name
EOF

とすればOK、もしくは各々好きなテキストエディタで開いて

[user]
default=<user-name>

wsl.confに上記テキストを書き込めばokだ
このconfigには他の用途も存在するが詳しい説明は割愛する。

感想

Microsoftさん、中途半端にしか使えない機能を作ったのならでかい声で叫ぶか、そもそも実装しないでください。あとC:\Users\<YourUsername>\AppData\の肥大化とおぞましい複雑化をどうにかしてください。全人類のCドライブが8TBある想定なんでしょうか?

脚注
  1. [ディストリビューションの既定のユーザーを変更する] (https://learn.microsoft.com/ja-jp/windows/wsl/basic-commands#change-the-default-user-for-a-distribution)
    ](https://devlights.hatenablog.com/entry/2021/05/29/070000) ↩︎

  2. [WSL で デフォルトユーザ を変更する方法] (https://learn.microsoft.com/ja-jp/windows/wsl/basic-commands#change-the-default-user-for-a-distribution)
    ](https://devlights.hatenablog.com/entry/2021/05/29/070000) ↩︎

Discussion