nisgrpadm コマンドは、NIS+ グループを作成したり、削除したり、さまざまな管理作業を実行します。nisgrpadm コマンドを使用するには、操作に必要なアクセス権を取得しなければなりません。
表 17–3 nisgrpadm に必要なアクセス権
操作の種類 |
必要なアクセス権 |
アクセス対象となるオブジェクト |
---|---|---|
グループの作成 |
作成 |
groups_dir ディレクトリ |
グループの削除 |
削除 |
groups_dir ディレクトリ |
メンバーの表示 |
読み取り |
グループオブジェクト |
メンバーの追加 |
変更 |
グループオブジェクト |
メンバーの削除 |
変更 |
グループオブジェクト |
nisgrpadm には、グループ作業用とグループメンバー作業用に 2 つの形式があります。
nisgrpadm -c group-name.domain-name nisgrpadm -d group-name nisgrpadm -l group-name |
メンバーの追加または削除、あるいはメンバーがグループに所属するかどうかの判定 (member... には、表 17–2 に示した、6 種類のメンバーのどのような組み合わせでも指定できます)。
nisgrpadm -a group-name member... nisgrpadm -r group-name member... nisgrpadm -t group-name member... |
作成 (-c) 以外のすべての処理には、部分指定名 group-name を使用できます。ただし、-c オプションの場合でも、nisgrpadm では group-name 引数に groups_dir を使用する必要はありません。実際これは受け付けられません。
NIS+ グループを作成するには、グループのドメインの groups_dir ディレクトリに対する作成権が必要です。-c オプションと完全指定グループ名を使用します。
nisgrpadm -c group-name.domainname |
グループを作成すると、指定した名前の NIS+ グループテーブルが groups_dir に作成されます。nisls コマンドを使うと、対応するテーブルが groups_dir に作成されているかどうかを確認できます。また、niscat コマンドを使うと、そのテーブル中のグループメンバーを一覧表示できます。
新しく作成したグループにはメンバーがありません。どのメンバーをどのグループに追加するかについては、NIS+ グループにメンバーを追加するを参照してください。
次の例では、admin という名前の 3 つのグループを作成します。最初のグループは、doc.com. ドメインに作成します。 2 番目のグループは、sales.doc.com. ドメインに作成します。3 番目のグループは、manf.doc.com. に作成します。これらはすべて、それぞれのドメインのマスターサーバーから作成されます。
rootmaster# nisgrpadm -c admin.doc.com. Group admin.doc.com. created. salesmaster# nisgrpadm -c admin.sales.doc.com. Group admin.sales.doc.com. created. manfmaster# nisgrpadm -c admin.manf.doc.com. Group admin.manf.doc.com. created. |
作成されるグループは、変数 NIS_DEFAULTS
で指定されたオブジェクト属性をすべて継承します。つまり、その所有者、所有グループ、アクセス権、生存期間、および検索パスです。これらのデフォルトを表示するには、nisdefaults コマンドを使用します (第 15 章「NIS+ のアクセス権の管理」を参照)。オプションなしで使用すると、次のように出力されます。
rootmaster# nisdefaults Principal Name : rootmaster.doc.com. Domain Name : doc.com. Host Name : rootmaster.doc.com. Group Name : Access Rights : ----rmcdr---r--- Time to live : 12:0:0 Search Path : doc.com. |
所有者は Principal Name: フィールドに表示されます。所有者グループは、環境変数 NIS_GROUP
を設定した場合にだけ表示されます。たとえば、C シェルを想定して NIS_GROUP
を fns_admins.doc.com に設定する場合は、次のように入力します。
rootmaster# setenv NIS_GROUP fns_admins.doc.com |
もちろん、グループの作成時に -D オプションを使用することによって、これらのデフォルトはどれでも変更できます。
salesmaster# nisgrpadm -D group=special.sales.doc.com.-c admin.sales.doc.com. Group admin.sales.doc.com. created. |
NIS+ グループを削除するには、グループのドメイン内の groups_dir ディレクトリに対する削除権が必要です。-d オプションを使用します。
nisgrpadm -d group-name |
デフォルトドメインが正しく設定されている場合、完全指定グループ名を使用する必要はありません。ただし、別のドメイン内のグループを誤って削除しないように、まず (nisdefaults を使用して) チェックしなければなりません。次の例では test.sales.doc.com. グループを削除します。
salesmaster% nisgrpadm -d test.sales.doc.com. Group test.sales.doc.com. destroyed. |
NIS+ グループにメンバーを追加するには、グループオブジェクトに対する変更権が必要です。-a オプションを使用します。
nisgrpadm -a group-name members. . . |
NIS+ グループメンバーのタイプの記述どおり、主体 (明示的なメンバー)、ドメイン (暗黙的なメンバー)、およびグループ (再帰的なメンバー) を追加できます。デフォルトドメインに所属するメンバー名またはグループ名は、完全指定する必要がありません。この例では、デフォルトドメイン sales.doc.com. の NIS+ 主体 panza と valjean、および manf.doc.com. ドメインの主体 makeba を top-team.sales.doc.com. グループに追加します。
client% nisgrpadm -a Ateam panza valjean makeba.manf.doc.com. Added panza.sales.doc.com to group Ateam.sales.doc.com Added valjean.sales.doc.com to group Ateam.sales.doc.com Added makeba.manf.doc.com to group Ateam.sales.doc.com |
この動作を確認するには、nisgrpadm -l オプションを使用します。「明示的なメンバー」のカテゴリにあるメンバーを探してください。
次の例では、doc.com. ドメイン内のすべての NIS+ 主体を staff.doc.com. グループに追加します。 これは doc.com. ドメイン内のクライアントから入力します。ドメイン名の前にある * 記号とドットに注意してください。
client% nisgrpadm -a Staff *.doc.com. Added *.doc.com. to group Staff.manf.doc.com. |
次の例では、NIS+ グループ admin.doc.com. を admin.manf.doc.com. グループに追加します。 これは manf.doc.com. ドメインのクライアントから入力します。グループ名の前にある @ 記号に注意してください。
client% nisgrpadm -a admin @admin.doc.com. Added @admin.doc.com. to group admin.manf.doc.com. |
NIS+ グループのメンバーを表示するには、グループオブジェクトに対する読み取り権が必要です。-l オプションを使用します。
nisgrpadm -l group-name |
次の例では、admin.manf.doc.com. グループのメンバーを表示します。これは manf.doc.com. グループ内のクライアントから入力します。
client% nisgrpadm -l admin Group entry for admin.manf.doc.com. group: No explicit members No implicit members: Recursive members: @admin.doc.com. No explicit nonmembers No implicit nonmembers No recursive nonmembers |
NIS+ グループからメンバーを削除するには、グループオブジェクトに対する変更権が必要です。-l オプションを使用します。
nisgrpadm -r group-name members. . . |
次の例では、Ateam.sales.doc.com グループから NIS+ 主体 allende と hugo.manf.doc.com. を削除します。 これは sales.doc.com.domain ドメイン内のクライアントから入力します。
client% nisgrpadm -r Ateam allende hugo.manf.doc.com. Removed allende.sales.doc.com. from group Ateam.sales.doc.com. Removed hugo.manf.doc.com. from group Ateam.sales.doc.com. |
次の例では、admin.manf.doc.com. グループから admin.doc.com. グループを削除します。 これは manf.doc.com. ドメイン内のクライアントから入力します。
client% nisgrpadm -r admin @admin.doc.com. Removed @admin.doc.com. from group admin.manf.doc.com. |
ある NIS+ 主体が特定の NIS+ グループのメンバーであるどうかを調べるには、そのグループオブジェクトに対する読み取り権が必要です。-t オプションを使用します。
nisgrpadm -t group-name members. . . |
次の例では、NIS+ 主体 topadmin が admin.doc.com. グループに所属するかどうかを調べます。 これは doc.com. ドメイン内のクライアントから入力します。
client% nisgrpadm -t admin topadmin topadmin.doc.com. is a member of group admin.doc.com. |
次の例では、sales.doc.com. ドメインの NIS+ 主体 jo が admin.sales.doc.com. グループに所属するかどうかを調べます。 これは doc.com. ドメイン内のクライアントから入力します。
client% nisgrpadm -t admin.sales.doc.com. jo.sales.doc.com. jo.sales.doc.com. is a member of group admin.sales.doc.com. |