メイン端末をPop!_OS搭載機に乗り換えてから、それまで内蔵HDDを外付けHDDケースに入れて運用1している。
PARTUUID=efb3d83e-a83b-40c3-2769-b31ddb04397b /mnt/hdd1 ntfs3 rw,nosuid,nodev,relatime,uid=1000,gid=1000,windows_names,iocharset=utf8,nofail,umask=0022 0 0
当初、このようにマウントしていたが、どうも作成されたディレクトリ、ファイルの初期権限が、マウントされた権限と異なる。
ディレクトリ
ディレクトリはumask=0022としているので、マウントされているディレクトリは755となっている。正しい。
drwxr-xr-x 1 arimasou16 arimasou16 4096 8月 31 2014 windows
drwxrwxr-x 1 arimasou16 arimasou16 4096 2月 21 17:00 new
しかし、新規作成されたディレクトリはLinux標準の775となっている。それは、ユーザーセッションのデフォルトのumaskが002となっているためで、これも正しい。というか、ならマウントオプションとしてはumask=0002とすべきだった。
$ umask
002
ファイル
次にファイルだが、umask=0022としているので、644となるはずが、Windows側で作成されてマウントした既存ファイルは755となっている。そして、同様にLinux側で新規作成されたファイルは664となっている。これは先程のディレクトリと同じ原因(セッションのumask)だ。
-rwxr-xr-x 1 arimasou16 arimasou16 1113821184 8月 7 2013 windows.docx
-rw-rw-r-- 1 arimasou16 arimasou16 7427125248 10月 3 2023 new.txt
マウントしたファイルの権限は明らかにおかしい。
ntfs3の挙動
Geminiに聞くとntfs3の挙動らしい。ntfs3ドライバは明示的に指定しないかぎりWindowsで作成したディレクトリ、ファイルには、実行権限を付与する。というのもWindowsに実行権限なんて管理しないから。Linuxとしては分からない、だからとりあえず付与しておこうとなる。
なので、Windowsで作成したファイルをマウントするときに、実行権限まで管理しようとする場合はfmask=とファイルのみに適用するオプション2を付ける。そして、ディレクトリのみに適用するdmask=を併用する。
PARTUUID=efb3d83e-a83b-40c3-2769-b31ddb04397b /mnt/hdd1 ntfs3 rw,nosuid,nodev,relatime,uid=1000,gid=1000,windows_names,iocharset=utf8,nofail,dmask=0022,fmask=0133 0 0
権限情報は記憶される
ただ、Linuxで作成したディレクトリ、ファイルに関しては正しく実行権限を含めたLinuxの権限情報が記憶される3。これが逆に嫌な場合はntfs-3gドライバを使えばLinuxの権限情報が記憶されない。
権限情報をディスクに記憶するのは他のLinuxのファイルシステムでは標準の動きで、ntfs3はそれに準拠するように変換・翻訳を行っているということになる。
なので作成されたディレクトリ、ファイルはマウントオプションで権限を変更することはできず、変更したければおとなしくchmodを使って変更する。
ということで、以下のコマンドで775となっているのを755に、664となっているのを644となるようにした。
find /mnt/{hdd1,hdd2} -type d -perm 775 -print0 | tee -a changes.log | xargs -0 chmod 755
find /mnt/{hdd1,hdd2} -type f -perm 664 -print0 | tee -a changes.log | xargs -0 chmod 644
wayland環境でも~/.profileにumask 0022と書き込めばGUIで作成したディレクトリ、ファイルも権限がマスクされるようになった。
また、権限を一括変更した後にバックアップ等でrsyncコマンドを実行しても、-aオプションには-p(権限を維持する)、-t(更新日時を維持する)が含まれているため、ファイルの中身の再コピーは発生せず、権限だけが同期される。
2026/04/15 21:15:22 [17108] .d...p..... 鷺巣詩郎/SHIRO'S SONGBOOK 11 Vox theatrum/
なので一瞬にして終わる。これでめでたし、めでたし。
-
ntfs3がLinuxのPOSIX権限をNTFSの拡張属性等として適切に保存・解釈してくれるため ↩︎