WSL2でCドライブ全体をLinux側に見せないようにする方法

Memo

自分は普段Windowsを使っていて、開発もWSL上のUbuntuを使っています。簡単にLinuxを使えてとても便利です。

が、初期状態ではWindowsのCドライブ全体が/mnt/cにマウントされています。手軽に使えはするものの、WSL上で外部から取得したツールやAIエージェントを利用する場合、この設定は考え物です。何かの拍子に機密重要を含むファイルにアクセスされたり破壊されたりするわけにいきません。

そこでWSLからは必要なディレクトリしか見られないよう制限をかけました。

※ディレクトリ名は仮の名前を使用しています。

og

リスクのあるツールには必要なディレクトリだけ見せる

設定

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 Share
WSL2でCドライブ全体をLinux側に見せないようにする方法
https://www.tricrow.com/memo/restrict-dir.html
この記事を書いた人
T.Nakamura
T.Nakamura
生成AI × AWS × IaC でインフラ構築を自動化するクラウドエンジニア。IT業界歴10年以上。標準化と効率化を追求している。技術ネタを発信中。フォローはこちら

カテゴリ

タグ