MacでNASのファイルを開くと変なファイルができるので直してみた

MacNASのファイルを開くと._(開いたファイル名)という名前のファイルができます。 ぐぐるリソースフォークAppleDouble Header fileというmacOSファイルシステム固有の仕様のようです。 しばらくは放っておいたのですが勝手にファイルを作られるとディレクトリのタイムスタンプが更新されてディレクトリをソートする際に大変不便だったので色々調べてみました。

macOSで無効化できないか?

結論を先にいうとできませんでした。.DS_Storeは下のコマンドで無効化できたんですけどAppleDouble Header fileの無効化はできませんでした。

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

NAS側でなんとかする

macOSでできないとなると後はNAS(Samba)側でなんとかするしかありません。 色々探してみるとmacOS向けの設定オプションがありました。

hatx.hatenablog.com

動作環境

前提条件として動作環境を載せときます。

リソースフォークを消す

最初に既にあるリソースフォークを消します。macOSにはdot_cleanという便利なコマンドがあるのでそれで消せます。

dot_clean /Volumes/(マウントしているNASの名前)

Sambaの設定変更

/etc/samba/smb.conf# For interoperability with macOS以下の項目を追加しました。

[shared]
        path = /shared
        browseable = Yes
        read only = No
        # For interoperability with macOS
        vfs objects = catia fruit streams_xattr
        fruit:encoding = native
        streams_xattr:prefix = user.
        streams_xattr:store_stream_type = no

smb.confを編集したらsambaをリロードします

$ sudo systemctl reload smbd
$ sudo systemctl reload nmbd

動作確認

試しにLinuxのコンソールからhogehoge.txtを作りました。 拡張属性はgetfattrコマンドで確認できますが作った直後は何もありません。

tsuyosh@enterprise:/shared$ touch hogehoge.txt
tsuyosh@enterprise:/shared$ getfattr -d hogehoge.txt 

Mac上から開くと何も変更を加えなくても下のように更新時間?が保存されます。

tsuyosh@enterprise:/shared$ getfattr -d hogehoge.txt 
# file: hogehoge.txt
user.com.apple.lastuseddate#PS=0sDLILXQAAAACR38suAAAAAAA=