So-net無料ブログ作成
検索選択

Snow Leopardからnetatalkへのコピーでエラー [Netatalk and Samba]

Snow Leopardからnetatalkにコピーするときにエラーが出ることがあります。
Mac OS X 10.6.1, 10.6.2, 10.6.3, 10.6.4にて確認済です。
日本語環境の場合は次のようなエラーです。
一部の項目へのアクセス権がないため、操作は完了できません。

英語環境の場合は次のようなエラーです。
The operation can't be completed because you don't have permission to access some of the items.


この問題は、拡張属性(EA)が絡んでいます。
aaa.txtというファイルをEA未対応のAFPサーバにコピーするとき、Snow Leopardは次のような動作をします。
  • aaa.txtにEAがないときには、今まで通りコピーできる。
  • aaa.txtがEAをもつとき、「._」で始まるAppleDoubleファイルを作ってその中に保存する。つまり、netatalkサーバ上に._aaa.txtと.AppleDouble/aaa.txtの二つのAppleDoubleファイルができてしまう。


LeopardのときはEAが消えてなくなりましたが、Snow LeopardではAppleDoubleファイルを作って保存するという方針なわけです。

で、問題は、このAppleDoubleを作るときSnow Leopardがパーミッションを「ゼロ」に設定してしまうことにあります。せっかくAppleDoubleファイルを作っても、それに書き込みが出来ないので、上記のエラーが発生します。

対処法は、dpermオプションとfpermオプションを使って、少なくとも所有者が書き込み出来るように強制設定することです。
なお、このdpermとfpermはnetatalk 2.0.4以降にしかありません。
2.0.3以前を使っている人は対処不能だと思います。
netatalk 2.1は既にEA対応なので、この問題は発生しません。

なお、ここでいうEAにはcom.apple.FinderInfoやcom.apple.ResourceForkは含みません。
前者はFinder情報であり、後者はリソースフォークです。

拡張属性(EA)って何?
拡張ファイル属性 - Wikipedia

Finder情報って何?
Finder情報 - Wikipedia

リソースフォークって何?
リソースフォーク - Wikipedia

フォークって何?
フォーク (ファイルシステム) - Wikipedia

AppleDoubleって何?
AppleSingle - Wikipedia

nice!(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

トラックバック 0