はじめに
MacからUbuntuのSamba共有フォルダにアクセスすると、自動的に生成される ._*(アップルダブルファイル)や .DS_Store。
これらはMac固有のメタデータや表示設定を保持するためのファイルですが、WindowsやLinux環境からは不要な隠しファイルとして見えてしまい、手動で削除するのも手間がかかります。
定期実行スクリプト(cron)で後から削除する方法もありますが、Samba(サーバー側)の設定を変更するだけで、最初から一切作成させないようにすることが可能です。
なぜSamba側の設定でブロックするのか?
- Mac側の個別設定が不要: 共有フォルダにアクセスするすべてのMacに対して一括で適用できます。
- リアルタイムでブロック: スクリプトのようなタイムラグがなく、最初からファイルが作られません。
- フォルダ削除エラーの防止: 隠しファイルが残ってフォルダが消せないトラブルも未然に防げます。
設定手順
1. 設定ファイルのバックアップ
作業前に smb.conf のバックアップを作成しておきます。
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak2. smb.conf の編集
設定ファイルを開きます。
sudo nano /etc/samba/smb.conf[global] セクション(全共有フォルダに適用したい場合)内に、以下の2行を追加します。
Ini, TOML
[global]
# ._* や .DS_Store の作成・検索・書き込みを拒否
veto files = /._*/.DS_Store/
# ブロックされたファイルが存在してもフォルダ削除を許可
delete veto files = yes
[global]
# ._* や .DS_Store の作成・検索・書き込みを拒否
veto files = /._*/.DS_Store/
# ブロックされたファイルが存在してもフォルダ削除を許可
delete veto files = yesポイント: 特定の共有フォルダだけに適用したい場合は、該当する
[共有名]セクション内に記述してください。
3. 設定の確認とSambaの再起動
設定ファイルの構文チェックを行い、問題がなければSambaサービスを再起動して設定を有効化します。
# 構文チェック(Loaded services file OK. と出れば正常です)
testparm
# Sambaサービスの再起動
sudo systemctl restart smbd既存の不要ファイルを一括クリーンアップ
この設定は「これから作成されるファイル」をブロックするためのものです。すでに共有フォルダ内に残っている隠しファイルは自動では消えないため、以下のコマンドで一度だけ削除しておきます。
sudo find /path/to/your/share -type f \( -name ".DS_Store" -o -name "._*" \) -delete注意点・導入時の留意事項
- Mac固有の装飾情報が保持されません
Finderの「カラータグ」やフォルダの「アイコン配置・表示サイズ設定」などは保存されなくなります。 - 一般的なファイル共有では問題なし
通常のオフィス文書、PDF、画像データなどの保存・編集においては何の実害もありません。ただし、Mac固有のメタデータ(リソースフォーク)に依存する特殊な専門ソフト(DTPや一部の動画・音楽編集ソフト)のデータを共有フォルダ上で直接扱う場合は注意してください。
おわりに
手動での削除やスクリプトによるクリーンアップを行っていた方は、Sambaの veto files パラメーターを設定することでストレスフリーな環境を構築できます。MacとLinuxが混在する開発・共有環境におすすめの設定です。


コメント