idmap_tdb2 — Samba の Winbind 用 idmap_tdb2 バックエンド
idmap_tdb2 プラグインはデフォルトの idmap_tdb バックエンドの代替と なるもので、Samba と CTDB におけるクラスター環境において winbindd が SID/uid/gid の対応表を格納するのに使われる。
idmap_rid のようなバックエンドはリードオンリーであるが、これは 割り当て機能を持つバックエンドだと言える。つまり、新しいマッピング を生成するために、新しいユーザーやグループの ID を割り当てる必要が あるということである。
バックエンドが割り当て権限を持っていて、かつ利用可能な uid と gid の範囲を定義する。
このオプションは、idマッピングを実行するために、 tdbカウンターの代替として使う、外部プログラムを定義するのに 使われる。マッピングはtdb2 idmapデータベースに格納される。 詳細は、以下のIDMAP SCRIPT節を参照のこと。
tdb2 idmap バックエンドは、id のマッピングを外部プログラムで実行する
ため、 smb.conf の idmap config * : script
又は
将来廃止予定の、旧形式であるidmap : script
オプション
をサポートしている。
スクリプトによるマッピングは、idカウンターを増やす事によって作成される マッピングの代わりに、idmap tdb2データベース中に格納される。そのため、 SID を UNIX の ID マッピングに対して渡すにあたり、このスクリプトは SID の全範囲をカバーするべきである。そうでないと、スクリプトではカバー されていない SID が、すでにスクリプトで割り当て済みの ID に割り当てられる 恐れがある。
このスクリプトは、以下のコマンドラインオプションを受け付ける ようになっていなければならない。
SIDTOID S-1-xxxx IDTOSID UID xxxx IDTOSID GID xxxx
またそのスクリプトは、以下のいずれかのレスポンスを1行で返すように なっている必要がある。
UID:yyyy GID:yyyy SID:yyyy ERR:yyyy
tdb2 がどのようにデフォルトの imapd バックエンドとして使われるかという 例を以下に示す。
[global] idmap config * : backend = tdb2 idmap config * : range = 1000000-2000000
[global] idmap config * : backend = tdb2 idmap config * : range = 1000000-2000000 idmap config * : script = /usr/local/samba/bin/idmap_script.sh