WSLを使い始めるとき、適当にユーザー名を作ってしまうことがあります。
私も最初に作ったユーザー名がブログ記事に載せにくく、後から変更することになりました。
Linuxではユーザー名の直接変更も可能ですが、トラブルの原因になりやすい方法です。
そのためこの記事では、安全な方法として次の手順でデフォルトユーザーを変更する方法を紹介します。
この方法なら、既存環境を壊さずにユーザーを変更できます。
WSLで現在のユーザーを確認する
まず、現在ログインしているユーザーを確認します。
whoamiここで表示されるユーザーが現在のユーザーです。
新しいユーザーを作成する
次に、新しいユーザーを作成します。
ここでは、新しいユーザー名はojichikuにしています。
sudo adduser ojichiku実行するとパスワードなどを入力する画面が表示されます。
表示される質問は基本的にEnterで進めても問題ありません。
ユーザー作成が終わったら、管理者権限(sudo)を付与します。
sudo usermod -aG sudo ojichikuこの設定を行わないと、sudoコマンドが使えなくなるため注意してください。
homeディレクトリのデータをコピーする
次に、旧ユーザーのhomeディレクトリを新ユーザーへコピーします。
sudo rsync -av /home/旧ユーザー名/ /home/ojichiku/ただし、このままだとファイルの所有者が旧ユーザーのままになります。
そのため、所有者を変更します。
sudo chown -R ojichiku:ojichiku /home/ojichikuこの操作を行うことで、新ユーザーでログインしたときに権限エラーが発生しなくなります。
WSLのデフォルトユーザーを変更する
次に、WSLのデフォルトユーザーを変更します。
WSLでは /etc/wsl.conf の設定によってデフォルトユーザーが決まります。
まず設定ファイルを開きます。
ここでは、viコマンドを使用していますが、他の編集コマンドでも大丈夫です。
sudo vi /etc/wsl.conf次の内容を設定します。
[user]
default=ojichiku保存したら、WSLを完全に停止します。
WSLを再起動しないと、デフォルトユーザーを変更することはできません。
PowerShellで次のコマンドを実行します。
wsl --shutdownその後、WSLを再起動します。
wslデフォルトユーザーが変更されたか確認する
WSLを再起動したら、ユーザーを確認します。
whoamiここで、次のように新しいユーザー名が表示されれば成功です。

WSLユーザー変更で注意したこと
ユーザー変更を行うとき、次の点に注意が必要です。
特にPython環境では、旧ユーザーのパスを参照するシンボリックリンクが残ることがあります。
その場合は仮想環境を作り直すと解決できます。
まとめ
WSLのデフォルトユーザー変更は次の手順で行うと安全です。
ユーザー名を変更したい場合でも、環境を作り直す必要はありません。
今回紹介した方法を使えば、既存環境を維持したままユーザー変更できます。
WSL環境を整理したい人は、ぜひ参考にしてみてください。
最後まで読んでいただき、ありがとうございました。