NIS+ への移行

Solaris 1.x と 2.x における NIS コマンドと NIS+ コマンドの比較

この節で示す表を見ると、Solaris 1.x の NIS コマンド、Solaris 2.x の NISコマンド、およびそれに対応する NIS+ コマンドの間の違いがわかります。

Solaris 2.x リリースでサポートされている NIS コマンド

Solaris 2.x リリースでは、一部の NIS コマンドだけがサポートされています。NIS サーバコマンドは、Solaris 2.x リリースでは提供されません。NIS クライアントコマンドだけがこのリリースに含まれています。これらの NIS コマンドが実行されるかどうかも、Solaris 2.x NIS クライアントが、NIS サーバまたは NIS 互換モードの NIS+ サーバにサービスを要求するかどうかによって決まります。NIS クライアントは、NIS 互換モードで実行されている NIS+ サーバに更新を依頼することができません。たとえば、このようなクライアントは、chkey、newkey の各コマンドを実行することができません。50 ページの表 4-2は、Solaris リリース 2.x でサポートされている NIS コマンドの一覧です。

表 4-2 Solaris 2.x リリースでサポートされる NIS コマンド

コマンドの種類 

Solaris 2.x リリースでサポートされる NIS コマンド 

Solaris 2.x リリースでサポートされない NIS コマンド 

ユーティリティ 

ypinit ypxfr ypcat ypmatch yppasswd ypset ypwhich

yppush yppoll ypchsh ypchfn ypmake

デーモン 

ypbind 

ypserv ypxfrd rpc.ypupdated rpc.yppasswdd

NIS API 

yp_get_default_domain()

yp_bind()

yp_unbind()

yp_match()

yp_first

yp_next()

yp_all()

yp_master()

yperr_string()

ypprot_err()

yp_order() yp_update()

クライアントコマンドとサーバコマンドの対応

この節で示す 2 つの表には、NIS コマンドと、それに相当する NIS+ コマンドを示してあります。これらのコマンドは、2 つのカテゴリに分けられます。表 4-3 では、ネームサービスクライアントからネームサービスサーバへのコマンドを示しています。 表 4-4 では、ネームサービスサーバからネームサービスサーバへのコマンドを示しています。

対応するクライアントコマンド

表 4-3では、ネームクライアントからネームサーバへのコマンドを示しています。これらのコマンドを、ネームサービスのクライアントマシン上で入力してネームサービスサーバの情報を要求します。表の 1 列目のコマンドは、Solaris 1.x の NIS サーバに接続されている、 Solaris 1.x または 2.x の NIS クライアントで実行されます。表の 2 列目のコマンドは、 NIS 互換モードで実行されている Solaris 2.x の NIS+ サーバに接続されている、 Solaris 1ox または 2.x の NIS クライアント上で実行されます。表の 3 列目のコマンドは、 Solaris 2.x NIS+ サーバに接続されている、Solaris 2.x NIS+ クライアント上でのみ実行されます。1 つの行に示されたコマンドは、ほぼ同じ機能を持ちます。「なし」は、対応するコマンドがないことを示しています。

表 4-3 NIS クライアントコマンドと対応する NIS+ コマンド

SunOS 4.x NIS サーバ 

NIS 互換モードの NIS+ サーバ 

NIS+ サーバ 

ypwhich -m

ypwhich -m

niscat -o org_dir

ypcat

ypcat

niscat

ypwhich

ypwhich

なし  

ypmatch

ypmatch

nismatch/nisgrep

yppasswd

passwd

passwd

ypbind

ypbind

なし  

yppoll

なし 

なし 

ypset

ypset

N/A 

なし 

ypinit -c

nisclient -c

以下の点に注意してください。

対応するサーバコマンド

表 4-4 では、ネームサーバからネームサーバへのコマンドを示しています。 NIS サーバコマンドは、Solaris 2.x リリースに含まれていないため、NIS+ サーバにも NIS 互換モードの NIS+ サーバにも使用できません。また、NIS サーバは、NIS+ サーバに変更を依頼することができません。この逆もできません。このテーブルの 3 番目の列には、最初の列の NIS サーバコマンドに対応する NIS+ サーバコマンドが示されています。NIS 互換モードはクライアントコマンドだけを参照するため、NIS 互換モードのサーバには同じ機能を提供するコマンドはありません。

表 4-4 NIS サーバコマンドと対応する NIS+ コマンド

SunOS 4.x NIS サーバ 

NIS 互換モードの NIS+ サーバ 

NIS+ サーバ 

ypxfr

なし 

なし 

makedbm

なし 

nisaddent

ypinit -m ypinit -s

なし 

nisserver

ypserv

rpc.nisd -Y

rpc.nisd

ypserv -d

rpc.nisd -Y -B

DNS 転送は不要、/etc/nsswitch.conf を使用すること

ypxfrd

なし 

なし 

rpc.ypupdated

なし 

なし 

rpc.yppasswd

rpc.nispasswdd

rpc.nispasswdd

yppush

なし 

nisping

ypmake

なし 

nissetup, nisaddent

ypxfr

なし 

なし 

NIS と NIS+ の API 関数の対応

サイトを完全に NIS+ に移行するには、ネームサービスを変更するだけでなく、すべてのアプリケーションを NIS+ に移植する必要があります。NIS の呼び出しを行う、サイトの内部で作成されたアプリケーションはすべて、NIS+ の呼び出しを実行するように変更しなければなりません。そうしないと、常に NIS 互換モードで NIS+ サーバを実行しなければならず、このモードの欠点をすべて抱えることになります。サイトの外部で作成されたアプリケーションでは、必要な変更が行われるまで、NIS 互換モードで名前空間を管理しなければならないことがあります。

表 4-5 では、NIS API 機能と、それに対応する NIS+ API 機能を示しています。

表 4-5 NIS の API の関数と NIS+ の API の関数の対応

NIS API の関数 

NIS API の関数 

yp_get_default_domain()

nis_local_directory()

ypbind()

なし 

ypunbind()

なし 

ypmatch()

nis_list()

yp_first()

nis_first_entry()

yp_next()

nis_next_entry()

yp_all()

nis_list()

yp_master()

nis_lookup()

yperr_string()

nis_perror() nis_sperrno()

ypprot_err()

nis_perror() nis_sperrno()

yp_order()

なし 

yp_update()

nis_add_entry(), nis_remove_entry(), nis_modify_entry()