名前

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 エラーが返ってしまうこと を防ぐ。

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

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

オプション

nfs4:mode = [ simple | special ]

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

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

  • simple(既定値) - OWNER@ と GROUP@ という特別な ID を、非継承 ACE のみに使う。

  • special(非推奨) - OWNER@ と GROUP@ という特別な ID を、すべてのファイル所有者とグループ ACE に対して使う。

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

このパラメーターは、ZFS の ACL 中にある重複した ACE を、どのように Samba が扱うかを設定する。 ZFS は同じ ID に対して異なったビットに対し、重複した ACE を許可/作成できる。

以下はそれぞれの値における Samba の動作である。

  • dontcare(既定値) - 指定された ACE をそのまま設定する

  • reject - ACL 設定処理を中断しエラーを返す

  • ignore - 重複するする ACE の二番目以降を無視する

  • merge - 重複する ACE のフラグとマスクをそれぞれ OR ビット演算して 1 つの ACE にする

nfs4:chown = [yes|no]

このパラメーターはファイルシステムに依存してサポートされる所有者変更(chown)機能を 有効にするか否かを指定する。このパラメーターは、システムに脆弱性が 出来てしまうかもしれないので、注意深く有効にすべきである。

いくつかのファイルシステムでは、所有者の変更権限として、 a) 所有権の付与権限 b) 所有権の取得権限の 2 種類を実装しており、 このうち後者はリスクであると考えられる。

以下は、それぞれの値における Samba の動作である。

  • yes - ファイルシステム下でサポートされているなら chown を有効にする

  • no(既定値) - chown を無効にする

使用例

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

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

バージョン

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

著者

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

日本語訳

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

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

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

  • さとうふみやす

によって行なわれた。