名前

idmap_script — Windows 向け Samba idmap_script バックエンド

説明

idmap_script プラグインは、Samba とCTDB を使う、クラスタ環境中において、 SID/uid/gid マッピングテーブルを格納するために winbindd によって使われる、 idmap_tdb2 バックエンド用の代替である。これはマッピングを実行するための スクリプトとして使う、リードオンリのバックエンドである。

これは、idmap_tdb2 バックエンドとは別に開発され、TDB 中に SID/uid/gid マッピングを格納しないので、 winbind_cache tdb は それらが提供されると、マッピングを格納する。

IDMAP オプション

range = low - high

バックエンドが権限を持つ、利用可能な uid と gid のマッチング範囲 を定義する。

script

このオプションは、id マッピングを実行するための外部プログラムを 設定するために使う事ができる。

IDMAP スクリプト

tdb2 idmap バックエンドは、${prefix}/etc/smb.conf のオプション idmap config * : scriptまたは、廃止予定の古い形式 idmap : scriptを使って、id マッピングを実行するための 外部プログラムをサポートする。

スクリプトで得られたマッピングは、次に、id カウンタを増加させる事により作成された マッピングの代わりである idmap tdb2 データベース中に格納する。そのため、 スクリプトが、SID から Unix ID マッピングに渡せる、SID の完全な範囲をカバーする ことは重要であり、そうで無い場合、スクリプトによってマップされない SID は、 以前にスクリプトによってマップされた IDにマップされるかもしれない。

スクリプトは以下のコマンドラインオプションを受け取れなければならない。

	SIDTOID S-1-xxxx
	IDTOSID UID xxxx
	IDTOSID GID xxxx
	IDTOSID XID xxxx
	

さらに、1行のテキストとして、以下のレスポンスのどれかを返さねばならない。

	UID:yyyy
	GID:yyyy
	XID:yyyy
	SID:ssss
	ERR:yyyy
	

XID は UID と GID 両方の ID であることを示す。すなわち、これは、 ID_TYPE_BOTH を必要とするが、それは最終的に、その要求が信頼出来るか についてはスクリプトに任されている。それは、UID または GID マッピングのみを 返すことも選べる。

これは、スクリプトパラメータ経由で、外部プログラムを使う既定値の idmap バックエンドが、 どのようにスクリプトが使われるかを示している。

	[global]
	idmap config * : backend = script
	idmap config * : range = 1000000-2000000
	idmap config * : script = /usr/local/samba/bin/idmap_script.sh
	

これはタスクの一部を実行する簡単なスクリプトである:

	#!/bin/sh
	#
	# Uncomment this if you want some logging
	#echo $@ >> /tmp/idmap.sh.log
	if [ "$1" == "SIDTOID" ]
	then
		# Note. The number returned has to be within the range defined
		#echo "Sending UID:1000005" >> /tmp/idmap.sh.log
		echo "UID:1000005"
		exit 0
	else
		#echo "Sending ERR: No idea what to do" >> /tmp/idmap.sh.log
		echo "ERR: No idea what to do"
		exit 1
	fi
	

はっきりとしていることは、 もしも、入ってきた SID がユーザかグループ SID かを決めるため、 wbinfo をおそらく使い、テーブル中でマッピングを検索するか、 SID から UID へのマッピングなどのための、他のいくつかのメカニズムを使う ので、このスクリプトは、完全ではない。

スクリプトは _NO_WINBINDD 環境変数を 1 に設定された状態で呼び出される ことに留意すること。これにより、スクリプトから、明示的な wbinfo の呼び出しと、 暗黙の nss_winbind 経由による呼び出し両方において、winbind の 再帰呼び出しを抑制する。 たとえば、 ls -l を実行すると、無限の再帰 を引き起こしてしまう。

idmap script 内で wbinfo -n と、 wbinfo -s を呼び出すことは安全である。 これを行う場合、再帰を防ぐために、スクリプトは wbinfo を呼び出す直前に、_NO_WINBINDD 環境変数を 設定解除し、 wbinfoから戻ってきた直後に、 再度値を 1 にしなければならない。

著者

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

日本語訳

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

このドキュメントの Samba 4.3.0 - 4.17.0 対応の翻訳は

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

によって行なわれた。