| 日本−日本語 |
|
|
|
![]() |
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > nnis_groups(3N)HP-UX 11i Version 2: September 2004 |
|
名称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 種類があります。
どのメンバーも前にマイナス符号 ('-') を付けることによって、 否定 することができます。 したがって、グループには明示メンバー、暗黙メンバー、再帰メンバー、明示否定メンバー、暗黙否定メンバー、再帰否定メンバーがあることになります。 主体は、グループの 1 つ以上の非否定メンバーに属し、どの否定メンバーにも属していないときに、グループに属するものとみなされます。 nis_ismember() 関数は、 principal が group に属することを確認できた場合に TRUE を戻し、確認できない場合に FALSE を戻します。 nis_addmember() 関数と nis_removemember() 関数はそれぞれメンバーの追加と削除を行います。 メンバーが有効かどうかのチェックは行いません。 ユーザーは目的のグループに対して読み取りアクセス権と変更アクセス権を持っていなければなりません。 nis_creategroup() 関数と nis_destroygroup() 関数はそれぞれ グループオブジェクトの作成と消去を行います。 ユーザーは適切なドメインの groups_dir ディレクトリに対して作成アクセス権または消去アクセス権を持っていなければなりません。 nis_creategroup() へのパラメータ flags は現在のところ使用されておらず、ゼロに設定する必要があります。 nis_print_group_entry() 関数は、グループのメンバーを標準出力にリストします。 nis_verifygroup() 関数は、指定されたグループがある場合に NIS_SUCCESS を戻し、ない場合にエラーコードを戻します。 マルチスレッドの使用法
これらの関数は、マルチスレッド環境で支障なく呼び出すことができます。 これらの関数は、キャンセルポイントの関数を呼び出した時点でキャンセルポイントになります。 マルチスレッド環境では、 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 NIS+ のサーバとクライアントは拡張されたグループのローカルキャッシュを維持して、グループのメンバーシップをチェックする際のパフォーマンスを高めます。 グループのメンバーシップを変更しても、グループのキャッシュが期限切れとなるかまたはグループのキャッシュを明示的にフラッシュするまで、そのキャッシュを維持するサーバとクライアントには変更が認識されません。 サーバのキャッシュは、タグ TAG_GCACHE と 1 の値を指定して nis_servstate() 関数を呼び出すことによって、プログラムでフラッシュすることができます。 現在のところ、 nis_ismember()、 nis_print_group_entry()、 および nis_verifygroup() がマスターサーバのみから答えを得る方法はありません。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||