概要

WSL2(Windows Subsystem Linux)でWindows上のファイルシステムにファイルを作成すると、パーミッションが777で作成されます。

これは、デフォルトの仕様だと思われますが、普段からLinuxを使っている場合、このように誰でも表示や編集可能というのは気持ち悪いです。

ここでは、WSL2でパーミッションを適切に扱いやすくする方法について紹介します。

原因

そもそも、なぜ777の権限でファイルが作成されるのかというと、Windowsのファイルシステムをマウントする際のプロトコルの仕様が原因です。Windows以外のファイルシステム上にファイルを作成した場合には、このような状態になりません。

パーミッションなどの情報は、ファイルのメタデータに保存されているわけですが、通常のWindowsのファイルシステムのマウントでは、このメタデータについて無視されています。つまり、WSL2上のLinuxで適切にパーミッションを設定しても、それが反映されないということです。

対処方法

このような問題への対処方法として、メタデータを適切に扱うため、マウント時に指定します。

WSL2では、このような設定をWSL2上の/etc/wsl.confに記述します。

次のように記述をすることで、メタデータを適切に扱える形でマウントされます。

[automount]
options = "metadata"

設定の後は、WSL2を再起動する必要があります。

さいごに

WSL2はとても便利なのですが、たまにはまったり、直観的でない動作をすることがあります。

今回の内容も、できればデフォルトで設定されていればいいのにと思うのですが、そのようにはなっていません。

パーミッションについて悩みを抱えている人の参考になれば幸いです。