学びをアウトプットするブログ

WSLのパーミッション周りの設定を色々とやっていく

WSLのパーミッションがおかしい問題。 プログラミング初心者だし、仕事でつかっているわけでもないので特に気にしていなかったのですが、どうもパーミッションを変更できるようになったとの話を聞きつけて、それならばと設定していくことにしました。

参照: RS4におけるWindows Subsystem for Linuxの改良点 drvfsのメタデータ対応

備忘録として。

パーミッションが変更できないから変更できるへ

wslにログインして、パーミッションの変更ができるかどうかを確認したけど、やはり出来なかった。そもそも変更できないことすら知らなかったんだけどw。

そこで以下のコマンドを

$ sudo umount /mnt/c
$ sudo mount -t drvfs C: /mnt/c -o metadata

このコマンドの意味するところは知りません。 これだけだと、wslを終了させて再度起動したときには設定がもとに戻ってしまっているそうなので、この状態を維持します。

#/etc/wsl.confに書き込む
$ sudo vim /etc/wsl.conf

#wsl.confに書き込んだ内容
[automount]
enabled = true
options = "metadata"
mountFsTab = false

これで再起動してもパーミッションが変更できます。

参照: chmod doesn't work? · Issue #81 · Microsoft/WSL · GitHub

Ubuntuとのパーミッションの違いが気になる

パーミッションは変更できるようになったものの、wslはUbuntuとまだちょっと違う。それは、touch や mkdirでファイルやディレクトリを作成したときのパーミッションが異なること。

ubuntuでmkdir なら755で作成されるし、touchなら644で作成される。wslではそうならない。

これはumaskで設定できるらしい。

# .profileに記入
umask 022

参照: ファイルやディレクトリ作成時の初期パーミッション設定を変えたい~umask~ - ITmedia エンタープライズ

これでバッチリ。

Ubuntuサーバー徹底入門

  • 作者: 中島 能和
  • 出版社: 翔泳社
  • 発売日: 2018/6/13