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ある想定なんでしょうか?
-
[ディストリビューションの既定のユーザーを変更する] (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) ↩︎ -
[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