Name

vfs_fruit — OS X と Netatalk との相互運用性を強化する

Synopsis

vfs objects = fruit

説明

この VFS モジュールは samba(7)システムの一部である。

The vfs_fruit モジュールは、Apple SMB クライアント との互換性向上と、Netatalk 3 AFP ファイルサーバとの相互運用性を提供する。

このモジュールは、もしも文字変換をするのであれば、 vfs_catia といっしょに使うべきであり、さらに、 vfs_streams_xattr と共に使わなければならない。 正しい設定方法は、例 の節を参照のこと。

モジュールは、共有に対して、代替データストリーム(ADS) のサポートと、OS X 特有のストーリム "AFP_AfpInfo" と "AFP_Resource" を横取りし、それを特別な方法で扱う機能を有効にする。 その他すべての名前付きストリームは、vfs_fruit といっしょにロードされねばならないvfs_streams_xattr にゆだねられる。

OS Xクライアントに対する、ADSサポートが有効な共有 があると言うことは、Apple固有のSMBサーバ実装の動作と似て、 Sambaが大文字と小文字を区別することにより引き起こされる 深刻なパフォーマンスの低下を回避すると言う点において価値がある。

OS X メタデータとリソースフォークストリームは、Netatalk 3 と 互換性のある方法で、下記のように設定することにより格納される。 fruit:resource = filefruit:metadata = netatalk

OS X は、NTFS の不正な文字を、SMB要求中で、Unicode のプライベート領域にマップする。 fruit:encoding = native を設定することにより、 すべてのマップされた文字は ネイティブなASCII文字に変換される。

最後に、共有アクセスモードは、 fruit:locking = netatalk を設定することにより、Netatalk AFP 共有モードに対して チェックすることもできる。

このモジュールは、このマニュアルページで言及されている 物以外に対してはスタックできない。

グローバルオプション

以下のオプションはsmb.conf のグローバルセクションに記述しなければ ならず、共有ごとのセクションに設定しても効果がない。

fruit:aapl = yes | no

グローバルオプションで、 コードネーム AAPL という、Apple の SMB2+ 拡張を有効にするかを指定する。 既定値はyesである。 この拡張は、Mac から繋ぐときに、いくつか欠けている点を 機能を追加する:

  • ディレクトリ一覧表示において、 Mac に関連したファイルシステムメタデータ(UNIX モード、 ファインダ情報、リソースフォークと実行パーミッション) が強化されているため、その結果として、Mac クライアントは このメタデータを、個々ののディレクトリエントリごと個別に 取得する必要はなく、その結果、しばしば大幅にパフォーマンス が向上する。

  • ディレクトリエントリの UNIX モード情報を 得たり、変更する機能。

fruit:aaplが有効になっているときに 使える、共有単位のオプションがある。以下で説明する、それらの オプションは、ディレクトリ一覧表示時に、特定の Mac メタデータの処理を無効にする。なお、それらのオプションにおける 既定値は 有効 である:

  • readdir_attr:aapl_rsize = yes | no

  • readdir_attr:aapl_finder_info = yes | no

  • readdir_attr:aapl_max_access = yes | no

以下では、上記のオプションの説明を記載する。

fruit:nfs_aces = yes | no

グローバルオプションであり、NFS ACE 経由の、 ディレクトリエントリに対する UNIX モードの問合せと変更のサポートが有効化か どうかを指定する。既定値はyesである。

A global option whether support for querying and modifying the UNIX mode of directory entries via NFS ACEs is enabled, default yes.

fruit:copyfile = yes | no

グローバルオプションであり、 すべての添付されたメタデータとともに、すべてのファイルの コピーを要求する、OS X 固有の copychunk ioctl を有効にするかの 指定。

A global option whether to enable OS X specific copychunk ioctl that requests a copy of a whole file along with all attached metadata.

注意: サーバがコピー実行中、copyfile 要求は、 クライアントをブロックする。

.

既定値はnoである。

オプション

以下のオプションは、smb.conf のグローバルセクションか、 個々の共有セクションに設定出来る。

fruit:resource = [ file | xattr | stream ]

どこに OSX リソースフォークを格納するかを制御する:

重要: バージョン 4.5 とそれ以前の すべての Samba 中では、オプションパーサでミススペルが あったため、このオプションはfruit:ressource と記述しなければならない。すなわち、sが 2つ必要である。

このオプションを、既定値以外に設定する場合、 ひきつづきfile の既定値設定を使うので、有効な設定を反映するように、 smb.conf を調整し、fruit:ressource=file を追加する事を推奨する。オプション行をすべて削除しても 同じように動作する。

Users who set this opion to any non-default setting were still using the default setting of file and are advised to adjust their smb.conf to reflect the effective setting and set fruit:ressource=file in their smb.conf. Removing the option line altogether works as well.

Samba 4.6 では、正しい/間違ったスペル両方とも 処理できるが、Samba 4.7 以降では 正しいスペルのみ受け付ける。

設定:

  • file (既定値) - OS X と Netatalk 互換の ._ AppleDouble ファイル を使う。

  • xattr - use a xattr, requires a filesystem with large xattr support and a file IO API compatible with xattrs, this boils down to Solaris and derived platforms and ZFS 拡張属性(xattr)を使用する。これは、大きなサイズの拡張属性をサポート するファイルシステムと、拡張属性に準拠した ファイルIO APIが必要となる。つまり、 Solaris と Solaris派生プラットフォームのZFSが必須である。

  • stream - VFSスタックの、次のモジュールに、ストリームを渡す

fruit:metadata = [ stream | netatalk ]

OS X メタデータストリームが格納される場所を指定する:

  • netatalk (既定値) - Netatalk 互換の xattr を使う

  • stream - VFSスタックの次のモジュールにストリームを渡す

fruit:locking = [ netatalk | none ]

  • none (既定値) - cross protocol lockingを使わない

  • netatalk - Netatalk で cross protocol locking を使う

fruit:encoding = [ native | private ]

ファイルシステムに格納される、OS X クライアントで一般的に 使われる、不正なNTFS ASCII文字セットを制御:

  • private (規定値) - OS Xクライアントによってエンコードされた形で文字を格納: Unicodeプライベート領域にマップされる

  • native - そのままのASCII値として文字を格納

fruit:veto_appledouble = yes | no

参考:このオプションは、 fruit:resourcefile(既定値)に設定されている 場合にのみ適用される。

fruit:resourcefileに設定された場合、 vfs_fruit は ._ AppleDouble ファイルを生成できる。 このオプションは、クライアントからファイルに対するアクセスを 防ぐために、._ AppleDouble を見えなくする(veto) かを制御する。

When fruit:resource is set to file, vfs_fruit may create ._ AppleDouble files. This options controls whether these ._ AppleDouble files are vetoed which prevents the client from accessing them.

._ ファイルをアクセス不可にすると、いくつかのアプリケーションで 誤動作を引き起こすことがある。たとえば、Mac クライアントから Mac ZIP アーカイブのを展開すると、アーカイブ中に ._ ファイルが 含まれているために失敗する。 このオプションを false にすることでこの問題を回避できるが、 内部向けに作成された ._ ファイルが露見してしまうことで 未知の副作用を引き起こすかもしれない。

Vetoing ._ files may break some applications, eg extracting Mac ZIP archives from Mac clients failes, because they contain ._ files. Setting this option to false will fix this, but the abstraction leak of exposing the internally created ._ files may have other unknown side effects.

The default is yes.

fruit:nfs_aces = yes | no

NFS ACE 経由での、ディレクトリエントリのUNIX モードを問合せ/変更する 機能を有効にするかどうかの指定で、既定値は yes

fruit:veto_appledouble = yes | no

Mac リソースフォークを格納する目的のため、 vfs_fruit それ自身に よって作成された、内部 AppleDouble ファイルの閲覧と変更を、クライアントから 防止するため、._ AppleDouble ファイルを見せなくするかどうかの指定。

._ ファイルを見せなくすると、いくつかのアプリケーションが動かなくなる ことがある。たとえば、 ._ ファイルを含むため、Mac クライアントからの Mac ZIP の回答は失敗する。このオプションを false に設定すると、これを修正するが、 内部的に作成された ._ ファイルの露出をリークする概念は、他の不明な 副作用を引き起こすかもしれない。

既定値はyesである。

fruit:posix_rename = yes | no

OS X クライアントで、POSIX の改名動作を有効にするかどうかの指定。 このオプションを指定しないと、クライアントは、(再帰的にも!) 対象ディレクトリ中にオープンしているファイルがある場合、 ディレクトリを改名出来ない。

既定値はyesである。

readdir_attr:aapl_rsize = yes | no

SMB2 FIND の応答で リソースフォークのサイズを返す。

既定値はyesである。

readdir_attr:aapl_finder_info = yes | no

SMB2 FIND の応答で FinderInfo を返す。

既定値はyesである。

readdir_attr:aapl_max_access = yes | no

SMB2 FIND の応答で、ユーザの有効な最大のアクセス許可 を返す。これは計算に時間がかかるので、設定を off にすると、 最大の有効なアクセス許可を持っているとみなす。

Return the user's effective maximum permissions in SMB2 FIND responses. This is an expensive computation, setting this to off pretends the use has maximum effective permissions.

既定値は yesである。

        [share]
	vfs objects = catia fruit streams_xattr
	fruit:resource = file
	fruit:metadata = netatalk
	fruit:locking = netatalk
	fruit:encoding = native

著者

オリジナルの Samba ソフトウェアと関連するユーティリティは、Andrew Tridgell によって作成された。現在 Samba は Samba Team に よって、Linuxカーネルの開発と同様のオープンソースプロジェクト として開発が行なわれている。

日本語訳

このマニュアルページは Samba 4.4.11 - 4.4.13 に対応する。

このドキュメントの Samba 4.2.0 - 4.4.13 対応の翻訳は

  • 太田俊哉 (ribbon@samba.gr.jp)

によって行なわれた。