Solaris ネーミングの管理

NIS+ の承認とアクセス - 紹介

NIS+ の承認の基本的目的は、各 NIS+ 主体が各 NIS+ オブジェクトとサービスに対して持っているアクセス権を特定することにあります。

一度主体の NIS+ 要求が認証されると、NIS+ は承認クラスを与えます。NIS+ オブジェクトに対して行うことのできる動作を指定するアクセス権は各クラスに与えられます。クラスごとに別のアクセス権が与えられる場合、各承認クラスはそれぞれアクセス権を持つということです。

承認クラス

NIS+ オブジェクトは NIS+ 主体に直接アクセス権を与えずに、主体の 4 つの「クラス」にアクセス権を与えます。

図 6-4 承認クラス

Graphic

NIS+ 要求のすべてについて、システムは要求主体が属しているクラスと、そのクラスが所持しているアクセス権を判定します。

オブジェクトに対するアクセス権は、各クラスで任意の組み合わせが可能です。しかしながら、通常は上位クラスが下位クラスのすべての権限に追加権限を持つように割り当てられます。

たとえば、未認証クラスとその他クラスに読み取り権が与えられていれば、読み取り権と変更権の両方をグループクラスに、そして読み取り権、変更権、作成権、および削除権を所有者クラスに与えます。

4 つのクラスについては、以下に詳述します。

所有者クラス

所有者は 1 つの NIS+ 主体です。

NIS+ オブジェクトへのアクセスを要求する主体は、所有者アクセス権を得る前に認証され (有効な DES 資格を提示し) なければなりません。

デフォルトでは、オブジェクト所有者はオブジェクトを作成できる主体です。しかしながら、オブジェクト所有者は 2 つの方法で別の主体に所有権を譲ることができます。

一度主体が所有権を放棄すると、その主体はオブジェクトに対する所有者のアクセス権すべてを放棄することになり、グループ、その他、未認証のいずれかの所有権を持つことになります。

グループクラス

オブジェクトグループは 1 つの NIS+ グループです。この場合の「グループ」とは、UNIX のグループやネットグループのことではありません。

NIS+ オブジェクトにアクセスを要求する主体は、認証され (有効な DES 資格を提示し) かつグループアクセス権を与えられる前にそのグループに属していなければなりません。

1 つの NIS+ グループは NIS+ 主体の集合であり、名前空間へのアクセス権を与えるのに都合の良いようにまとめられたものです。NIS+ グループに与えられるアクセス権はそのグループのメンバーである主体すべてに適用されます。オブジェクトの所有者が、そのオブジェクトのグループに属している必要はありません。

オブジェクトが作成された時、そのオブジェクトはデフォルトグループに割り当てられます。オブジェクトが作成された時でもその後でも、そのオブジェクトをデフォルト以外のグループに割り当てることができます。オブジェクトグループはいつでも変更できます。


注 -

NIS+ グループに関する情報は NIS+ group テーブルに格納されるのではないことに注意してください。NIS+ group テーブルには UNIX グループに関する情報が格納されます。NIS+ グループに関する情報は、適切な groups_dir ディレクトリのオブジェクトに格納されます。


NIS+ グループの情報は、各 NIS+ ドメインの groups_dir サブディレクトリにある、NIS+ グループ「オブジェクト」に格納されます。

図 6-5 NIS+のディレクトリ構造

Graphic

NIS+ グループの管理については、第 12 章「NIS+ グループの管理」を参照してください。

その他クラス

その他クラスは、NIS+ によって認証されたすべての NIS+ 主体のクラスです。すなわち、所有者およびグループクラスのすべてと有効な DES 資格を提示したものを加えたものです。

その他に与えられたアクセス権は、認証されたすべての主体に適用されます。

未認証クラス

未認証クラスは、正しく認証されなかったものすべてで構成されます。すなわち、有効な DES 資格を提示しなかったものです。

承認クラスと NIS+ オブジェクトの階層

NIS+ オブジェクトと承認クラスには各レベルに適用される階層があります。標準的な NIS+ ディレクトリ階層のデフォルトは次のようになります。

各レベルには 4 つの承認クラスが適用されます。ディレクトリオブジェクトはそれ自身の所有者とグループを持ちます。ディレクトリ内の個々のテーブルは、ディレクトリの所有者およびグループと異なる所有者およびグループを持ちます。テーブル内では、1 エントリ (行) が個々の所有者もしくはグループを持ちます。この所有者もしくはグループは、テーブル全体の所有者やグループとは異なり、またオブジェクト全体の所有者やグループとも異なります。テーブル内の個々の列は、テーブル全体と同じ所有者やグループを持ちます。

NIS+ のアクセス権について

NIS+ オブジェクトはオブジェクト定義の一部としてそのアクセス権を指定します。「NIS+ オブジェクトのアクセス権の読み取り」niscat -o コマンドを使用した場合の説明があります。

NIS+ オブジェクトは、UNIX ファイルが UNIX ユーザーに対するアクセス権を指定するのと同じ方法で、NIS+ 主体に対するアクセス権を指定します。アクセス権は、NIS+ 主体が NIS+ オブジェクトについて実行することが許されている動作の種類を表します。

NIS+ の動作はオブジェクトの種類によって異なりますが、読み取り、変更、作成、および削除の 4 つのクラスに分類されます。

NIS+ クライアントから NIS+ サーバーへのすべての通信は、実際には特定の NIS+ オブジェクトに対してこれらの動作のうちの 1 つを実行してほしいという要求です。たとえば、NIS+ 主体が他のワークステーションの IP アドレスを要求した場合、これは実際には、この種の情報を格納している「hosts」テーブルオブジェクトへの読み取り権を要求しています。主体が NIS+ 名前空間にディレクトリを追加するようサーバーに要求した場合、これは実際には、そのディレクトリの親オブジェクトに対して変更権を要求しています。

これらの権限は、ディレクトリからテーブルへ、さらにテーブルの列およびエントリへと展開することを覚えておいてください。たとえば、新しいテーブルを作成するには、テーブルを格納するディレクトリオブジェクトに対して作成権を持っていなければなりません。テーブルを作成する場合は、ユーザーはそのテーブルのデフォルト所有者になります。所有者として、テーブルに新しいエントリを作成できる作成権を自分自身に割り当てることができます。テーブルに新しいエントリを作成する場合は、ユーザーはそのエントリのデフォルト所有者になります。所有者として、他のユーザーにテーブルレベルの作成権を与えることもできます。たとえば、テーブルのグループクラスにテーブルレベルの作成権を与えることができます。その場合、そのテーブルグループのすべてのメンバーがテーブルに新しいエントリを作成できます。新規のテーブルエントリを作成する個々のグループメンバーはそのエントリのデフォルト所有者になります。