ファイルサーバー上の「.DS_Store」や「._*」を非表示にするSambaの設定

Macからファイルサーバーにアクセスすると自動生成される以下のようなファイル、困りますよねぇ。

veto_before.png

僕もWindowsユーザーから変なもん作るなと言われたことがあります。

ググったら一括削除する方法や作成しない方法など、たくさん出てくると思います。
例えば「.DS_Store」を作成しない方法だとFinderで以下のコマンドを実行する方法にたどり着くと思います。

% defaults write com.apple.desktopservices DSDontWriteNetworkStores true
% killall Finder

確かに「.DS_Store」は作成されなくなるんですが、「._*」の方が作成されちゃうんですよね。
調べても作成されないようにする方法が見つからないので無理なのかもしれませんね。

というわけでサーバー側の設定を変更して、とりあえず見えなくしてしまいます。
smb.confのglobalセクションに以下の設定を追加してください。

[global]
delete veto files = yes
veto files = /._*/.DS_Store/

/内で指定したファイルにアクセスできなくする設定のようです。
(delete veto files = yesを入れておかないと見えなくしたファイルが含まれるディレクトリが、削除できない場合があるようです)

veto_after.png

こんなふうに表示されなくなります。

こうしておけば、Windowsで隠しファイルを表示する設定にしても表示されませんし、
フォルダごとローカルにコピーしたら出現するなんてこともないです。

ファイルの数だけ数KB消費しますが、今時気になるほどの容量ではないかと思います。
まぁ気になる方は他のサイト様で紹介されている、
一括削除の方法をお試しいただければと思います。

ちなみに、この設定に気付けたのは
会社で使っているQNAPでデフォルトで設定されていたからです。
困っている方はファイルサーバーの管理者に相談してみてはどうでしょうか。