はじめに
VSCode Remote WSLを使っていますかー?
WSLからVSCodeに接続しているのに、作成したファイルがroot権限になってしまって困った経験はないでしょうか。
今回はその原因と対処法をまとめます。
対象者
- WindowsでVSCode + Remote WSLを使っている
- 作成したファイルのオーナーがrootになって困っている
環境
- Windows 11
- VSCode + Remote - WSL 拡張機能
- WSL2 Ubuntu
症状の確認
VSCode のターミナルで以下を確認します。
whoami
root と返ってくる場合、これが原因です。
WSLのデフォルトユーザーがrootになっているため、VSCode経由で作成したファイルがすべてroot所有になります。
原因
WSLは初回セットアップ時にユーザーを作成しますが、何らかの理由でデフォルトユーザーが root になっていることがあります。
VSCode Remote WSLはWSL内のサーバーとして動作するため、WSLのデフォルトユーザーがrootであればVSCodeもrootとして動作します。
解決手順
Step 1: デフォルトユーザーを変更する
PowerShellを開いて実行します。
ubuntu config --default-user <ユーザー名>
<ユーザー名> はWSLに作成済みのLinuxユーザー名を指定してください。
Step 2: WSLを再起動する
wsl --shutdown
その後VSCodeを再起動して再接続します。
Step 3: 変更を確認する
VSCodeのターミナルで確認します。
whoami
# <ユーザー名>が返ってくればOK
後処理:既存ファイルのオーナーを修正する
すでにroot権限で作成されたファイルがある場合は、chownでオーナーを変更します。
sudo chown -R ユーザー名:ユーザー名 ~/プロジェクト
まとめ
| ステップ | やること |
|---|---|
| 原因確認 |
whoami でrootになっていないか確認 |
| デフォルトユーザー変更 | ubuntu config --default-user ユーザー名 |
| WSL再起動 |
wsl --shutdown → VSCode再起動 |
| 既存ファイル修正 |
sudo chown -R でオーナーを変更 |
設定一発で直るので、同じ症状で困っている方の参考になれば幸いです!