<ns:Root>

名前

vfs_zfsacl — ZFS ACL samba モジュール

書式

vfs objects = zfsacl

説明

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

zfsacl VFS モジュールは、Samba と ZFS を適切に統合させるために、Samba にとって必要となる ACL 拡張属性 のすべてを取り扱うモジュールである。

現在 zfsacl vfs モジュールは以下の処理状況において拡張属性を提供する。

  • ZFS に対しての設定変更が可能なオプションを用いた NFSv4 ACL インターフェース

注意: このモジュールは posix acl の動作に 従うので、chown を通じてのパーミッション取得を可能にする。 Samba は後の処理タイミングにおいて、このモジュールの chown 処理を 許可しない場合がある。こういった制約を扱う責任は、Samba 側にある のではなく、Samba が扱っているファイルシステム側にあるからである。

このモジュールは、 acl map full control = acl map full control smb.conf パラメーターを使用する。yes(既定値)に設定すると、 ファイルに対する ACE エントリとして戻ってくる値に FILE_DELETE_CHILD ビットを加える。これはファイルに対するものであってディレクトリではない。 なおその戻り値は、FILE_DELETE、 FILE_DELETE_CHILD を除き、すでにファイル に関するパーミッションはすべて含まれている。これは、Windows アプリケーション が NFSv4 互換 ACL に対応するファイルシステムを使っていて、GENERIC_ALL アクセスを要求するものである場合に、ACCESS_DENIED エラーが返ってしまうこと を防ぐ。

ZFS には ACL の動作を決める、複数のデータセット設定パラメータがある。 それらのパラメータの意味合いは、このマニュアルページの範囲外ではあるが、 "aclmode" と "aclinherit" は、Samba の共有にとって特に重要である。 Samba の共有としてのみのデータセットでは、"aclmode = restricted" と "aclinherit = passthrough" は、NTFS ACL ともっとも一致した継承の動作を提供する。 "restricted" ACLモードは、重要な ACL があるファイルの chmod() を防ぐ (情報の欠落なしに POSIX モードとして表現できないもの)。 詳細については ZFS のマニュアルページを参照のこと。

このモジュールはスタック可能である。

Samba 4.0 からすべてのオプションは共有単位のオプションとなった。

オプション

nfs4:mode = [ simple | special ]

NFS4 ACL 上の特別な ID (OWNER@ と GROUP@) の置き換えを制御する。 モード simple の使用を推奨する。 このモードでは、ファイル所有者とグループの非継承 ACL エントリ のみが、特別な ID にマップされる。

以下の MODE はモジュールによって解釈される:

  • simple(default) - 非継承 ACE 専用の、 OWNER@ と GROUP@ という特別な ID を使用する。

  • special(deprecated) - すべてのファイル所有者とグループ ACE 用に、ACE 中で、 OWNER@ と GROUP@ という特別な ID を使用する。

nfs4:acedup = [dontcare|reject|ignore|merge]

このパラメータは、NFS4 ACL で検出された重複 ACE を、Samba が処理する方法を設定する。 これらは、同じ ID に対して異なるビットを持つ重複した ACE を作成することができるので、Windows クライアントを混乱させる可能性がある。

以下は、異なった値に対する Samba の挙動である :

  • dontcare - 送られてきたとおりに ACE をコピーする

  • reject (deprecated) - 操作を停止し、ACL 設定操作でエラーが発生した旨を添えて終了する

  • ignore (deprecated) - 2番目に一致するACEを含めない

  • merge (default) - 2つの重複 ACE の、2つの ace.flag と 2つの ace.mask フィールドの、ビット単位の OR を取り、1つの ACE にする

nfs4:chown = [yes|no]

このパラメータは、基礎となるファイルシステムでサポートされている chown を 有効または無効にすることを許可する。このパラメータは注意して有効にする必要がある。 システムのセキュリティが低下する可能性があるからである。

ファイルシステムによっては a) 所有権を与えること b) 所有権を取得すること (訳注: a) giving b) stealing) として chown を許可しているものもある。 後者はリスクと考えられている。

以下は、異なる値に対する Samba の動作である:

  • yes - ファイルシステムでサポートされている場合は、chown を有効にする

  • no (default) - chown を無効にする

zfsacl:denymissingspecial = [yes|no]

Prevent users from setting an ACL that lacks NFSv4 special entries NFSv4 の特別なエントリ(owner@, group@, everyone@)がない ACL をユーザが設定できない ようにする。 ZFS は、上位のディレクトリの ACL が 特別なディレクトリを継承していない場合、 新しいファイルに継承された ACL を設定するとき、自動的に前述の3つのエントリを生成する。 このオプションを使うと、ユーザが混乱し、ファイルとディレクトリのパーミッションに 継承された ACL が生成されることにより、予期しない変更が発生することがある。

  • yes

  • no (既定値)

zfsacl:block_special = [yes|no]

ZFS が、NFSv4 の特別なエントリ (owner@, group@, everyone@) を 自動的に追加しないようにする。ZFS は、新しいファイルの継承された ACLを計算するとき、親ディレクトリの ACL に継承された特別なエントリが 欠けている場合、自動的にこの3つのエントリを生成する。これにより、 継承された ACL が生成されるとき、ユーザは混乱した結果を得たり、 ファイルとディレクトリのパーミッションで予期しない変更を受け取る 可能性がある。この動作を抑制するために、何のパーミッションも許可しない everyone@ の継承を設定し、ファイルのセキュリティディスクリプタに エントリを追加しないようにする。

  • yes (既定値)

  • no

zfsacl:map_dacl_protected = [yes|no]

ベースとなるファイルシステムの ZFS ACLが、継承されたアクセスコントロールエントリを 含んでいない時に有効にした場合、SMB クライアントに返される セキュリティディスクリプタに SEC_DESC_DACL_PROTECTED フラグを設定する。 これは、ディレクトリの継承を無効にした Windows クライアントの動作を修正する。

以下は、異なった値に対する Samba の動作である :

  • yes - SEC_DESC_DACL_PROTECTED のマッピングを有効にする。

  • no (既定値)

使用例

ZFS マウントは以下のようにして Samba 経由でエクスポートされる。

        [samba_zfs_share]
	vfs objects = zfsacl
	path = /test/zfs_mount
	nfs4: mode = simple
	nfs4: acedup = merge

バージョン

このマニュアルページはバージョン 4.0.x の Samba システム用である。

著者

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

日本語訳

このドキュメントは、Samba 4.17.0 - 4.20.4 に対応する。

このドキュメントの翻訳は

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

  • さとうふみやす

によって行なわれた。

</ns:Root>