WSL2でCドライブ全体をLinux側に見せないようにする方法
自分は普段Windowsを使っていて、開発もWSL上のUbuntuを使っています。簡単にLinuxを使えてとても便利です。
が、初期状態ではWindowsのCドライブ全体が/mnt/cにマウントされています。手軽に使えはするものの、WSL上で外部から取得したツールやAIエージェントを利用する場合、この設定は考え物です。何かの拍子に機密重要を含むファイルにアクセスされたり破壊されたりするわけにいきません。
そこでWSLからは必要なディレクトリしか見られないよう制限をかけました。
※ディレクトリ名は仮の名前を使用しています。

リスクのあるツールには必要なディレクトリだけ見せる
設定
1. Linux(WSL)で設定
Linux側で、/etc/wsl.confにautomountとinteropの項目を追加します。
~$ cat /etc/wsl.conf
[automount]
enabled = false
[interop]
appendWindowsPath = false
automountの項目だけでは下記のようなエラーが出たため、interopの項目を追加しています。
<3>WSL (346 - Relay) ERROR: UtilTranslatePathList:2878: Failed to translate C:\windows\system32
また、起動時に自動でマウントされるよう/etc/fstabに設定を追加します。
~$ cat /etc/fstab
# UNCONFIGURED FSTAB FOR BASE SYSTEM
C:/example/mydir /mnt/c/example/mydir drvfs metadata,notime,gid=1000,uid=1000,defaults 0 0
~$
2. WindowsからLinux(WSL)を再起動
Windows側に戻ってWSLを再起動。
wsl -t Ubuntu
wsl
3. Linux(WSL)上で確認
下記のように、必要なディレクトリだけが見えているようになっていれば成功です。
~$ ls /mnt/c
example
権限は絞っておくと安心
以上、Linux(WSL)からアクセスできるWindowsのファイルを制限する方法をご紹介しました。
セキュリティは使い勝手とのトレードオフになりがちです。しかし、アクセス制限が適切に設定されていることで信頼性に若干の不安があるツールも利用しやすくなる、という側面もあります。あらかじめ保険をかけていれば、「このツール、絶対便利だけどちょっとセキュリティに不安が……」と感じる場面でも積極的にリスクを取っていけるわけです。
「攻めための守備」として、アクセス権限の制限は一つの解法になりえます。
参考
ChatGPTと下記ページを参考にしました。
Show Text to ShareWSL2でCドライブ全体をLinux側に見せないようにする方法 https://www.tricrow.com/memo/restrict-dir.html