本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > n

nis_groups(3N)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

nis_groups, nis_ismember, nis_addmember, nis_removemember, nis_creategroup, nis_destroygroup, nis_verifygroup, nis_print_group_entry, nis_map_group, __nis_map_group ― NIS+ グループの操作関数

構文

cc [ flag... ] file... -lnsl [ library... ]

#include <rpcsvc/nis.h>

bool_t nis_ismember(const nis_name principal, const nis_name group);

nis_error nis_addmember(const nis_name member, const nis_name group);

nis_error nis_removemember(const nis_name member, const nis_name group);

nis_error nis_creategroup(const nis_name group, const u_long flags);

nis_error nis_destroygroup(const nis_name group);

void nis_print_group_entry(const nis_name group);

nis_error nis_verifygroup(const nis_name group);

説明

これらの関数は NIS+ グループを操作します。 NIS+ クライアントおよびサーバで使用され、グループオーソライゼーション オブジェクトへのインタフェースとして機能します。

NIS+ グループ名の構文は NIS+ オブジェクト名とよく似ていますが、別のネーム空間に属します。 "a.b.c.d."というグループ名は、"a.groups_dir.b.c.d."という NIS+ グループオブジェクト名に相当します。ここで説明する関数にはすべてグループ名を使用し、グループオブジェクト名は使用しません。

グループメンバーには以下の 3 種類があります。

  • 明示 メンバーは "wickedwitch.west.oz." など、通常の NIS+ 主体名です。

  • 暗黙 ("ドメイン ") メンバーは、"*.west.oz."のように表し、指定されたドメインのすべての主体がこのメンバーに属することを意味します。 ワイルドカードを他の方法で使用することはできません。したがって、 "wickedwitch.*.oz." や "wickedwitch.west.*."は無効です。 指定されたドメインのサブドメインにある主体は 含まれない ことに注意してください。

  • 再帰 ("グループ ") メンバーは、 "@cowards.oz."のように表し、別のグループを参照します。そのグループに属するすべての主体が対象となります。

どのメンバーも前にマイナス符号 ('-') を付けることによって、 否定 することができます。 したがって、グループには明示メンバー、暗黙メンバー、再帰メンバー、明示否定メンバー、暗黙否定メンバー、再帰否定メンバーがあることになります。

主体は、グループの 1 つ以上の非否定メンバーに属し、どの否定メンバーにも属していないときに、グループに属するものとみなされます。

nis_ismember() 関数は、 principalgroup に属することを確認できた場合に TRUE を戻し、確認できない場合に FALSE を戻します。

nis_addmember() 関数と nis_removemember() 関数はそれぞれメンバーの追加と削除を行います。 メンバーが有効かどうかのチェックは行いません。 ユーザーは目的のグループに対して読み取りアクセス権と変更アクセス権を持っていなければなりません。

nis_creategroup() 関数と nis_destroygroup() 関数はそれぞれ グループオブジェクトの作成と消去を行います。 ユーザーは適切なドメインの groups_dir ディレクトリに対して作成アクセス権または消去アクセス権を持っていなければなりません。 nis_creategroup() へのパラメータ flags は現在のところ使用されておらず、ゼロに設定する必要があります。

nis_print_group_entry() 関数は、グループのメンバーを標準出力にリストします。

nis_verifygroup() 関数は、指定されたグループがある場合に NIS_SUCCESS を戻し、ない場合にエラーコードを戻します。

マルチスレッドの使用法

Thread Safe:  

Yes

Cancel Safe:  

Yes

Fork Safe:  

No

Async-cancel Safe:
  

No

Async-signal Safe:
  

No

これらの関数は、マルチスレッド環境で支障なく呼び出すことができます。 これらの関数は、キャンセルポイントの関数を呼び出した時点でキャンセルポイントになります。

マルチスレッド環境では、 fork() の後と exec() の前の子プロセスでこれらの関数を呼び出すことは安全ではありません。 非同期キャンセルまたは非同期シグナルをサポートするマルチスレッドアプリケーションでこれらの関数を呼び出さないようにしてください。

単純なメンバーシップ確認

tinman.oz.lion.oz.scarecrow.oz. の各メンバーを持つ sadsouls.oz. というグループがある場合に、以下の関数を呼び出します。

bool_var = nis_ismember("lion.oz.", "sadsouls.oz."); 

この関数は 1 (TRUE) を戻します。次に、以下の関数を呼び出します。

bool_var = nis_ismember("toto.oz.", "sadsouls.oz."); 

この関数は 0 (FALSE) を戻します。

暗黙メンバーシップ

wickedwitch.west.oz.*.monkeys.west.oz. のメンバーを持つ baddies.oz. というグループがある場合に、以下の関数を呼び出します。

bool_var = nis_ismember("hulk.monkeys.west.oz.", "baddies.oz."); 

monkeys.west.oz. ドメインから得られるどの主体も暗黙グループ *.monkeys.west.oz. に属するので、この関数は 1 (TRUE) を戻します。次に以下の関数を呼び出します。

bool_var = nis_ismember("hulk.big.monkeys.west.oz.", "baddies.oz."); 

この関数は 0 (FALSE) を戻します。

再帰メンバーシップ

toto.kansas@sadsouls.oz.@baddies.oz. の各メンバーを持つ goodandbad.oz. というグループと、前に定義したグループの sadsouls.oz.baddies.oz. がある場合に、以下の関数を呼び出します。

bool_var = nis_ismember("wickedwitch.west.oz.", "goodandbad.oz."); 

wickedwitch.west.oz. は、 goodandbad.oz. グループに再帰的に含まれた baddies.oz. グループのメンバーであるので、この関数は 1 (TRUE) を戻します。

注意

これらの関数が受け付けるのは完全修飾された NIS+ 名だけです。

グループは、 group_obj 構造体で定義された可変部のある NIS+ オブジェクト nis_objects(3N) を参照) で表されます。グループには以下のフィールドが含まれています。

u_long            gr_flags;       /* Interpretation Flags 
                                   (currently unused) */ 
struct { 
        u_int     gr_members_len;
        nis_name  *gr_members_val; 
} gr_members;                     /* Array of members */

NIS+ のサーバとクライアントは拡張されたグループのローカルキャッシュを維持して、グループのメンバーシップをチェックする際のパフォーマンスを高めます。 グループのメンバーシップを変更しても、グループのキャッシュが期限切れとなるかまたはグループのキャッシュを明示的にフラッシュするまで、そのキャッシュを維持するサーバとクライアントには変更が認識されません。 サーバのキャッシュは、タグ TAG_GCACHE と 1 の値を指定して nis_servstate() 関数を呼び出すことによって、プログラムでフラッシュすることができます。

現在のところ、 nis_ismember()nis_print_group_entry()、 および nis_verifygroup() がマスターサーバのみから答えを得る方法はありません。

警告

HP-UX 11i Version 2 は、NIS+ がサポートされる最後の HP-UX リリースです。

NIS+ の代わりに LDAP を推奨します。 HP は、LDAP に基づく業界標準のネームサービスを完全にサポートします。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.