NETGROUP(5)

名称
netgroup - ネットワークグループを定義する

書式
netgroup

解説
netgroup ファイルは ネットワークへの同じようなアクセス権を与えられた (host, user, domain) の形式の値の組を指定します。

このファイル中のそれぞれの行は、ネットグループ名とそれに続くネットグループの メンバリストで構成されます。 それぞれのメンバは、他のネットグループ名か、次のような値の組に する事ができます。

    (host, user, domain)

ここで host, user, domain は、それぞれの構成要素に対応する文字列名です。 コンマで区切られたフィールドはどれも、空にする事で ``ワイルドカード'' を、 ``-'' にする事で ``値無し'' を指定する事ができます。 メンバリストは空白またはコンマで区切る事ができ、文字 ``\'' を行の最後 に使う事によって行を継続できます。 1 行は 1024 文字までに制限されています。 netgroup データベースにアクセスするためには、通常 getnetgrent(3) の中の関数が使われます。

# で始まる行はコメントとして扱われます。

NIS/YP の相互作用
他の多くのプラットフォームでは、 netgroup はもっぱら NIS と一緒に用いられ、ローカルの /etc/netgroup ファイルは無視されます。 FreeBSD では NIS かローカルファイルの netgroup のどちらかを使うようにする事が出来ます。しかし、 この機能は慎重に使うべきです。 現在の netgroup システムは、 innetgr(3) を用いた照会に関する部分が極めて非効率です。 これは、問い合わせのあったその場で netgroup のメンバ情報を計算するためです。 それに比べて、 NIS の netgroup データベースは innetgr(3) が素早く照会を完了させるためのキー項目を持った 3 つのマップ (netgroup と netgroup.byuser と netgroup.byhost) によって構成されています。 FreeBSD の netgroup システムは、次の方法で NIS の netgroup マップと互いに作用し合う事が出来ます:

•   もし /etc/netgroup ファイルが存在しなかった場合、または存在しても空の場合、または存在しても ‘+’ しか書かれていない場合で、これらのいずれかの場合に加えて NIS が動いている場合は、 netgroup は NIS だけを使って照会を行ないます。このとき、 innetgr(3) は、netgroup.byuser マップと netgroup.byhost マップを最大限に利用して 高速検索を行ないます (これは、SunOS とそれに類するプラットホームの 実装とほとんど同じです)。

•   もし /etc/netgroup が存在し、かつローカルの netgroup 情報のみを含んでいる ( NIS の ‘+’ がない) 場合、 そのローカルの netgroup 情報のみが使用されます ( NIS の情報は無視されます)。

•   もし、 /etc/netgroup が存在し、かつローカルの netgroup データ および NIS の ‘+’ トークンの両方が含まれている場合、ローカルのデータと NIS の netgroup マップは 1 つにつながれた netgroup データベースの様に処理されます。この構成は最も柔軟ですが、 最も非効率です。特に、このデータベースが大きい場合は innetgr(3) による照会は極端に遅くなります。

関連ファイル
/etc/netgroup
    ネットグループデータベース

関連項目
getnetgrent(3), exports(5)

互換性
このファイルフォーマットは、さまざまなベンダと互換性がありますが、 すべてのベンダが同一のフォーマットを使っているわけではないようです。

バグ
ネットグループのメンバの組に基づいたアクセス制限の解釈は、さまざまな ネットワークアプリケーション任せになっています。 また、ドメイン指定を BSD 環境に適用する方法も不明確です。

netgroup データベースは逆引きスピードアップのため、 passwd(5) の様にハッシュ化された db(3) データベースに格納されるべきです。