WSLを使い始めるとき、適当にユーザー名を作ってしまうことがあります。
私も最初に作ったユーザー名がブログ記事に載せにくく、後から変更することになりました。

Linuxではユーザー名の直接変更も可能ですが、トラブルの原因になりやすい方法です。
そのためこの記事では、安全な方法として次の手順でデフォルトユーザーを変更する方法を紹介します。

  • 新しいユーザーを作成する
  • homeディレクトリのデータをコピーする
  • WSLのデフォルトユーザーを変更する

この方法なら、既存環境を壊さずにユーザーを変更できます。

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ユーザー変更で注意したこと

ユーザー変更を行うとき、次の点に注意が必要です。

  • homeコピー後に所有者を変更する
  • WSLは wsl --shutdown で完全再起動する
  • Python仮想環境などは再作成が必要な場合がある

特にPython環境では、旧ユーザーのパスを参照するシンボリックリンクが残ることがあります。
その場合は仮想環境を作り直すと解決できます。

まとめ

WSLのデフォルトユーザー変更は次の手順で行うと安全です。

  • 新しいユーザーを作成する
  • homeディレクトリをコピーする
  • 所有者を変更する
  • /etc/wsl.conf でデフォルトユーザーを設定する
  • WSLを再起動する

ユーザー名を変更したい場合でも、環境を作り直す必要はありません。
今回紹介した方法を使えば、既存環境を維持したままユーザー変更できます。

WSL環境を整理したい人は、ぜひ参考にしてみてください。
最後まで読んでいただき、ありがとうございました。