revnetgroup
ユーティリティは
netgroup(5)
フォーマットのファイル内容を処理し、
逆ネットグループ
と呼ばれる形式に変換します。
元のファイルでは、あるグループが含むメンバを示す形式で
ネットグループのメンバが示されます。
逆ネットグループフォーマットでは、
あるメンバが属するグループを示します。
この情報は
netgroup.byuser
と
netgroup.byhosts
の
NIS
マップを作成するために使用します。
これらの逆ネットグループマップは、ネットグループの参照、
特に
innetgr()
ライブラリ関数を高速化するために使用されます。
例えば、標準の
/etc/netgroup
ファイルはネットグループとそのメンバリストを列挙します。
ここで、ネットグループは
キー
であるとし、メンバ名を
データ
であるとします。
これに対し、逆の
netgroup.byusers
データベースは、ユニークなメンバをキーとし、
メンバが属するネットグループをデータとします。
ユーザとホストに属する情報を保持する別々のデータベースを作成します;
これにより、ネットグループユーザ名参照とネットグループホスト名参照が
独立のキー空間にて実行されます。
あらかじめ逆ネットグループデータベース
(およびこれに対応する
NIS
マップ)を構築することにより、
要求ごとに
getnetgrent(3)
ライブラリ関数が依存関係を処理しなくても良くなります。
これは、ユーザ数及びホスト数が多いネットワークでは重要です。
なぜなら、巨大なネットグループデータベースの処理は多大な時間を要するからです。
revnetgroup
ユーティリティは結果を標準出力に表示します。
通常は
/var/yp/Makefile
から呼ばれるだけであり、
これは
NIS
ネットグループマップを構築する時です。