NIS+ への移行

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

この節で示す表を見ると、Solaris 1 オペレーティング環境の NIS コマンド、Solaris 2 または Solaris 7 オペレーティング環境の NISコマンド、およびそれに対応する NIS+ コマンドの間の違いがわかります。

Solaris 2 および Solaris 7 でサポートされている NIS コマンド

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

表 4-2 Solaris 2 および Solaris 7 オペレーティング環境でサポートされる NIS コマンド

コマンドの種類 

Solaris 2 および 7 でサポートされる NIS コマンド 

Solaris 2 および 7 でサポートされない 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 の NIS サーバーに接続されている、 Solaris 1、Solaris 2 または Solaris 7 の NIS クライアントで実行されます。表の 2 列目のコマンドは、 NIS 互換モードで実行されている Solaris 2 または Solaris 7 の NIS+ サーバーに接続されている、 Solaris 1、Solaris 2 または Solaris 7の NIS クライアント上で実行されます。表の 3 列目のコマンドは、 Solaris 1 または Solaris 7 の NIS+ サーバーに接続されている、Solaris 2 または Solaris 7 の 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

なし 

なし 

ypinit -c

nisclient -c

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

対応するサーバーコマンド

表 4-4 では、ネームサーバーからネームサーバーへのコマンドを示しています。 NIS サーバーコマンドは、Solaris 2 または Solaris 7 に含まれていないため、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()