OS Xリソースフォークは、通常のファイルに添付されるデータの代替ストリームです。ファイルのカスタムアイコン、色付きラベル、キーワード、またはユーザーまたはアプリケーションによって設定されたその他のメタデータを含めることができます。
OS XのHFS +ファイルシステムでネイティブにサポートされていますが、ローカル(FAT32)またはリモート(NFS、SMB)にかかわらず、OS Xが別のファイルシステムをマウントすると、いわゆる「ドットバー」ファイルに保存されます:通常のファイルのリソースフォークname.ext
は別の通常の隠しファイルに保存されます._name.ext
。(.DS_Store
アイコンビューと列ビューなどのディレクトリのビュー設定、またはウィンドウの位置を保存するファイルと混同しないでください。)
ドットバー._
ファイルの問題は、元のファイルと同じ拡張子を持つターゲットファイルシステム内の実際の通常のファイルであるため、さまざまな方法で大混乱を招くことです。たとえば、AntとMavenは._MyClass.java
、さらに別のJavaファイルをコンパイルする必要があります。
OS XはSMBの名前付きストリームにリソースフォークを格納するように構成でき、SambaはPOSIX拡張属性または別の場所のデポディレクトリに名前付きストリームを格納するように構成できることがわかります。
どちらのソリューションでも、ターゲットファイルシステムを汚染するドットバーファイルの問題は解決しますが、どちらも機能しません。
Xattr
最初にxattrで試しました:
vfs objects = streams_xattr
kernel oplocks = no
後者のオプションはこのバグによるものです。マウントする前に、共有のルートでこれを行うことで、OS Xに使用するように指示しました。
touch .com.apple.smb.streams.on
しかし、Finderでファイルをコピーしようとすると、次のエラーが発生しました。
「hello.java」内の一部のデータの読み取りまたは書き込みができないため、Finderは操作を完了できません。
(エラーコード-36)
デポ
次に、デポで試しました:
vfs objects = streams_depot
.com.apple.smb.streams.on
共有のルートに残します。Finderで同じファイルをコピーしようとすると、別のエラーが発生しました。
予期しないエラーが発生したため、操作を完了できません
(エラーコード-50)
これら2つのオプションのいずれかでOS Xを機能させるにはどうすればよいですか?私の目的は、これらの厄介なものを._
共有ディレクトリから取り除くことです。
私は単純にドットバーファイルを拒否しようとしました:
veto files = /._*/
delete veto files = yes
ただし、これにより、一部のアプリケーションが失敗します。たとえば、マウントされたSMB共有を介してOS Xから実行されるMercurialなどです。
クライアントとしてOS X 10.9.5を使用しています。サーバーとしてのDebian WheezyのSamba 3.6.6。
編集:要求された私の構成は次のとおりです。
[global]
security = user
invalid users = root
workgroup = COMPANY_NAME
encrypt passwords = true
panic action = /usr/share/samba/panic-action %d
syslog = yes
syslog only = yes
# PERFORMANCE TUNING
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=131072 SO_SNDBUF=131072 SO_KEEPALIVE
read raw = true
write raw = true
use sendfile = true
min receivefile size = 16384
aio read size = 16384
aio write size = 16384
max xmit = 131072
getwd cache = true
# DEFAULT OPTIONS FOR ALL SHARES
writeable = true
force group = company_group
create mask = 664
security mask = 664
force create mode = 664
force security mode = 664
directory mask = 2775
directory security mask = 2775
force directory mode = 2775
force directory security mode = 2775
# solve problem where OS X clients remove mode 0100
map archive = no
[homes]
browseable = no
unix extensions
ディレクティブを[global]
セッションに変更して、問題が解決するかどうかを確認しましたか?testparm
コマンドからの出力で質問を更新できますか?