Solaris のシステム管理 (ネーミングとディレクトリサービス : NIS+ 編)

nisgrpadm コマンド

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+ グループを作成する

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_GROUPnet_admins.doc.com に設定する場合は、次のように入力します。


rootmaster# setenv NIS_GROUP net_admins.doc.com

もちろん、グループの作成時に -D オプションを使用することによって、これらのデフォルトはどれでも変更できます。


salesmaster# nisgrpadm -D group=special.sales.doc.com.-c 
admin.sales.doc.com. Group admin.sales.doc.com. created.

NIS+ グループを削除する

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+ グループにメンバーを追加する

NIS+ グループにメンバーを追加するには、グループオブジェクトに対する変更権が必要です。-a オプションを使用します。


nisgrpadm -a group-name members. . .

「NIS+ グループメンバーのタイプ」の記述どおり、主体 (明示的なメンバー)、ドメイン (暗黙的なメンバー)、およびグループ (再帰的なメンバー) を追加できます。デフォルトドメインに所属するメンバー名またはグループ名は、完全指定する必要がありません。この例では、デフォルトドメイン sales.doc.com. の NIS+ 主体 panza と valjean、および manf.doc.com. ドメインの主体 makebatop-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+ グループのメンバーを表示する

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+ グループからメンバーを削除する

NIS+ グループからメンバーを削除するには、グループオブジェクトに対する変更権が必要です。-r オプションを使用します。


nisgrpadm -r group-name members. . .

次の例では、Ateam.sales.doc.com グループから NIS+ 主体 allendehugo.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+ 主体が特定の 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.