vfs_acl_xattr — 拡張属性 (EA) に NTFS のアクセス許可を保存
vfs objects = acl_xattr
このVFSモジュールは samba(7)システムの一部である。
このモジュールは、標準化された NFS4 ACL をサポートしていないが、 非推奨の POSIX ACL ドラフト実装のみをサポートしているシステム用に 作成されている。これは、通常 Linux システムの場合である。 ちゃんとサポートしているシステムでは、このモジュールの代わりに、 NFSv4 ACL を直接使用すれば良い。そのようなサポートは、NFS4 ACLを サポートする基本ファイルシステムに固有の VFS モジュールによって 提供される。
vfs_acl_xattr
VFSモジュールは、
拡張属性 (EA) に NTFS のアクセス許可 (ACL) を格納する。
これにより、 ACL 実装が それを行うことが出来なくとも、
Samba サーバーで NTFS のアクセス許可を完全に実装することが
可能となる。
NTACL は、AC L内のユーザとグループを表現する Windows SID を含む形式で、
ファイルとディレクトリの security.NTACL
拡張
属性に格納される。これは、ローカルファイルシステムの ACL に格納されて
いる uid と gid とは異なり、さらに、格納されている NT ACL の意味を
維持するため、ユーザとグループから Windows SID へのマッピングは一貫して
いる必要がある。この拡張属性は、Linux コマンド
getfattr -d
.
では表示されない。
現在の値を表示するためには、EA 名を指定する必要がある (たとえば、
filename
getfattr -n security.NTACL
) 。
filename
このモジュールは以下のパラメータを強制的に設定する。
inherit acls = true
dos filemode = true
force unknown acl user = true
このモジュールはスタック可能である。
このオプションは、NTACL 拡張属性 (xattr) の既定の位置を再定義する。 設定がない場合、NTACL xattr は保護された場所である security.NTACL に 書き込まれる。すなわち、security.NTACL 属性の内容は、Samba 以外の 通常のユーザからはアクセス出来ない。たとえば、user.NTACL などの、 ユーザ定義の値を使用するように、このオプションを設定した場合、 すべてのユーザがこの情報に対して、アクセスし、上書きできる可能性が ある。モジュールは、SMB 上でこの xattr へのアクセスを抑止するが、 xattr は他の方法 (たとえばローカルアクセス、SSH、 NFS など)で アクセスされる可能性がある。このオプションは、この結果が明確に理解 していて、ACL の内容が、損なわれることを防ぐための、特別な予防処置が 取られている場合にのみ、使う必要がある。
このパラメーターを yes に設定した場合、 このモジュールは、ベストエフォートで行う、POSIX draft ACL レイヤとのマッピング 処理を行わない。既定は no で、この場合、 Samba はシステムの ACL と NT ACL の 両方に対して設定を行い、またアクセス可否の確認を実施する。 ローカルまたは NFS 経由でのファイルアクセスのために、システムの ACL も 設定しておく必要がある場合は、この設定が望ましいであろう。 Samba 経由以外でファイルアクセスを行わない場合は、このパラメーターを yes にすることで、 NTFS のアクセス許可との互換性を高めることができる。
もしも、acl_xattr:ignore system aclsを yesに設定した場合、以下の設定が、 強制的に追加される。
create mask = 0666
directory mask = 0777
map archive = no
map hidden = no
map readonly = no
map system = no
store dos attributes = yes
posixに設定した場合、 NT Authority\SYSTEM がすべての権限を持つ 追加の ACE を付けた形で、ユーザ、グループとその他の、 POSIX モードパーミッションに基づいた ACL が合成される。
windowsに設定した場合、Windows が行うのと 同じ方法で ACL は合成されるが、所有者と、 NT Authority\SYSTEM に対するパーミッション のみを含む。
everyoneに設定した場合、ACL は、 everyone (S-1-1-0) に対する完全なパーミッション が合成される。
このオプションの既定値は posixである。