NIS+ の名前空間内のオブジェクトは、「部分指定」と「完全指定名」という 2 種類の名前によって識別できます。部分指定名は「単純」名とも呼ばれ、単なるオブジェクトの名前か、または完全指定名の一部分です。ある管理業務を行なっている間にユーザーがオブジェクトまたは主体の部分指定名を入力した場合、NIS+ はその名前を完全指定名に展開しようと試みます。詳細は、「NIS+ の名前展開」を参照してください。
完全指定名とは、名前空間内でオブジェクトを探すために必要なすべての情報を含んだオブジェクトの完全な名前です。必要なすべての情報とはオブジェクトの親ディレクトリ (もしあれば)、最後のドットも含んだ完全なドメイン名などです。
これはオブジェクトの種類によって異なるため、各タイプと NIS+ の主体ごとの規則を別個に説明します。次の名前空間を例として使用します。
NIS+ の主体を含めて、この名前空間内の全オブジェクトの完全指定名を図 4-3 に要約します。
完全指定ドメイン名は左から右に作成され、ローカルドメインで始まってルートドメインで終わります。たとえば次のようになります。
doc.com. (ルートドメイン)
sales.doc.com. (サブドメイン)
intl.sales.doc.com. (サブドメイン)
最初の行はルートドメインの名前を示します。ルートドメインは、少なくとも 2 つのラベルを持ち、ドットで終わらなければなりません。最後 (右端) のラベルは自由につけられますが、インターネット上の互換性を維持するためには、表 4-2 に示されるようなインターネットの組織名、または 2、3 文字の地域識別子 (日本であれば .jp) をつける必要があります。
表 4-2 インターネットの組織ドメイン
ドメイン |
種類 |
---|---|
com |
営利団体 |
edu |
教育機関 |
gov |
行政機関 |
mil |
軍事組織 |
net |
ネットワークサポートセンター |
org |
非営利団体 |
int |
国際組織 |
上の 2 行目と 3 行目は下位レベルドメインの名前です。
ディレクトリの単純名は、単にディレクトリオブジェクトの名前です。この完全指定名は、単純名にそのドメインの完全指定名を加えたものです (常に最後のドットを含む)。
groups_dir (単純名)
groups_dir.manf.doc.com.(完全指定名)
複数のディレクトリ層が 1 つのドメインを形成しないような変則的な階層を設定する場合、中間ディレクトリ名を含めるようにしてください。たとえば、次のようにします。
lowest_dir.lower_dir.low_dir.mydomain.com.
通常単純名は、同じドメイン内から使用され、完全指定名は、リモートドメインから使用されます。しかし、ドメインの NIS_PATH 環境変数に検索パスを指定することによって、リモートドメインから単純名を使用できます ( 「NIS+ の名前展開」を参照してください)。
完全指定されたテーブル名とグループ名は、オブジェクト名から始まり、ディレクトリ名をつけ、その後に完全指定されたドメイン名が続いて作られます。すべてのシステムテーブルオブジェクトは org_dir ディレクトリに格納されて、すべてのグループオブジェクトは groups_dir ディレクトリに格納されていることを忘れないでください。独自の NIS+ テーブルを作成した場合は、どこでも好きなところに格納できます。グループ名とテーブル名の例を次に示します。
admin.groups_dir.doc.com. admin.groups_dir.doc.com. admin.groups_dir.sales.doc.com. admin.groups_dir.sales.doc.com. hosts.org_dir.doc.com. hosts.org_dir.doc.com. hosts.org_dir.sales.doc.com. hosts.org_dir.sales.doc.com.
NIS+ テーブル内のエントリを識別するには、その中にあるエントリとテーブルオブジェクトを識別する必要があります。このような名前を「インデックス付き」名と呼びます。この構文を次に示します。
[column=value, column=value,...],tablename
Column はテーブル列の名前です。Value はその列の実際の値です。tablename はテーブルオブジェクトの完全指定名です。hosts テーブルのエントリ例を次に示します。
[addr=129.44.2.1,name=pine],hosts.org_dir.sales.doc.com. [addr=129.44.2.2,name=elm],hosts.org_dir.sales.doc.com. [addr=129.44.2.3,name=oak],hosts.org_dir.sales.doc.com.
括弧の中には、テーブルエントリを一意に識別するために必要な最小限の列の値のペアを使用できます。
一部の NIS+ 管理コマンドは、この構文のバリエーションを利用できます。詳細は、Part II の nistbladm、nismatch、nisgrep の各コマンドの説明を参照してください。
ホスト名の長さは 24 文字までで、使用できるのは文字、数字、ダッシュ (-)、および下線 (_) です。大文字と小文字の区別はありません 。大文字と小文字は同じ文字とみなされます。また先頭は英文字とします。スペースは使用できません。
ドット (.) を含むホスト名 (myco.2 など) は使用できません。これは、`myco.2' のように引用符を使用しても同じです。ドットを使用するのは、完全指定のホスト名の一部として表記するときだけです (myco-2.sales.doc.com など)。
またドメイン名とホスト名が同じにならないようにします。たとえば、sales ドメインがある場合は、ホスト名に sales を使用することはできません。同様に、home というホスト名がある場合には、ドメイン名に home を使用できません。これは、サブドメインについても同様です。たとえば、すでにホスト名として west がある場合には、sales.west.myco.com というサブドメインを作ることはできません。
NIS+ の主体名は、Secure RPC のネット名とよく混同することがあります。これらの名前については、Part II のセキュリティに関する章で説明します。念のためここで 1 つだけ違いを指摘しておきます。NIS+ の主体名は必ずドットで終わりますが、Secure RPC のネット名はドットで終わることは絶対ありません。
表 4-3 NIS+ の主体名
olivia.sales.doc.com. |
NIS+ 主体名 |
unix.olivia@sales.doc.com |
secure RPC ネット名 |
また、たとえ主体の資格が cred テーブルに格納されていても、cred テーブル名も org_dir ディレクトリ名も主体名には含まれません。
名前空間名は、ISO ラテン 1 セットの印刷可能文字を自由に使用して作成できます。ただし、名前の先頭には次に示す文字は使用できません。@ < > + [ ] - / = . , : ;
文字列を使用するには、二重引用符で囲みます。名前の中に引用符を使用するには、その記号も引用符で囲みます (たとえば、o'henry を使用するには o"'"henry と入力します)。John Smith などのように空白スペースを組み込むには、次のように一重引用符の中で二重引用符を使用します。
`"John Smith"`
ホスト名に適用される制限については 「ホスト名」を参照してください。
NIS+ のコマンドで完全指定名を入力することは面倒です。この作業を簡単にするため、NIS+ は名前展開機能を提供します。部分指定名が入力されると、NIS+ は別のディレクトリのもとでこのオブジェクトを見つけようと試みます。最初は、デフォルトドメインから探します。これは、このコマンドを入力したクライアントのホームドメインです。デフォルトドメインでオブジェクトが見つからなかった場合、このオブジェクトが見つかるまで、NIS+ はデフォルトドメインの親ディレクトリを下から上へ探していきます。2 つのラベルしかない名前に到達すると、検索を停止します。次にその例を示します。この例では、software.big.sales.doc.com. ドメインに所属するクライアントにログインしたと仮定します。