NIS は Network Information Service の略です。
NIS は YP とも呼ばれます。 YP はイエロー ページの略です。
NIS は、一連のデータベースのルックアップ サービスです。この場合のデータベースは、passwd ファイル、グループ ファイル、hosts ファイルなどです。これは主に、すべてのユーザー名とパスワード (つまり /etc/passwd) を保持するための中央リポジトリとして使用され、さまざまなサーバーがこのサーバーに対して認証を行うことができます。ユーザー名とパスワード。
これは、複数のサーバーを管理する必要があるシステム管理者にとって非常に役立ちます。すべての Linux サーバーでユーザーのユーザー アカウントを作成する代わりに、NIS サーバーを実行するように構成された 1 つのサーバーでアカウントを作成するだけで済みます。他のすべてのサーバーは、この中央 NIS サーバー リポジトリに対して認証を行う NIS クライアントとして構成できます。
これは、ypserv NIS サーバーとクライアントのインストールと構成を説明する段階的なチュートリアルです。
YPServ はイエロー ページ サーバーの略です。
NIS サーバーが既に構成されていて、Linux サーバーを既存の NIS サーバーに接続しようとしている場合は、以下の「NIS クライアントの構成」セクションに進んでください。
NIS サーバーとクライアントの両方をインストールして構成する場合は、以下の最初のステップから始めてください。
NIS サーバーの構成
1.ポートマップを確認
Portmap サーバーは、DARPA ポートを RPC プログラム番号にマップします。 NIS サーバー (RPC サーバー) と通信するために RPC 呼び出しを行う NIS クライアントの場合、ポートマッパーが実行されている必要があります。
NIS サーバーが起動すると、リッスンしているポートをポートマッパーに通知します。 NIS クライアントが NIS サーバーに接続すると、最初にポートマッパーをチェックして、NIS サーバーが実行されているポート番号を取得し、そのポート番号に RPC 呼び出しを送信します。
ほとんどの Linux ディストリビューションでは、portmap がデフォルトで実行されます。実行中であり、システムの再起動時に開始されるように構成されていることを確認してください。
# ps -ef | grep -i portmap rpc 3624 1 0 Feb23 ? 00:00:00 portmap root 16908 8658 0 10:35 pts/0 00:00:00 grep -i portmap # chkconfig --list | grep portmap portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off
2. YPServ をインストール
それぞれの Linux ディストリビューションの一般的なインストール方法 (apt-get、yum、up2date など) を使用して、サーバーに ypserv をインストールします。
ソースからインストールする場合は、ypserv ソースをダウンロードしてください。
Redhat システムでは、インストール CD から ypserv RPM を特定し、rpm を使用して以下に示すようにインストールします。
# rpm -ivh ypserv-2.19-5.el5.i386.rpm Preparing... ########################################### [100%] 1:ypserv ########################################### [100%]
ypserv は /usr/sbin/ypserv の下にインストールされます
# whereis ypserv ypserv: /usr/sbin/ypserv /etc/ypserv.conf /usr/share/man/man8/ypserv.8.gz
3. ypserv を開始
以下に示すように、ypserv がポートマップに登録されているかどうかを確認してください。
# rpcinfo -u localhost ypserv rpcinfo: RPC: Program not registered program 100004 is not available
上記の出力は、ypserv がインストールされていないか、ypserv がインストールされているがまだ開始されていないことを示しています。次のクイック チェックは、ypserv がまだ開始されていないことを示しています。
# chkconfig --list | grep yp ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off yppasswdd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ypserv 0:off 1:off 2:off 3:off 4:off 5:off 6:off ypxfrd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # service ypserv status ypserv is stopped
以下に示すように、/etc/sysconfig/network ファイルで NISDOMAIN を設定します。
# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=prod-db GATEWAY=192.168.1.1 NISDOMAIN=thegeekstuff.com
以下に示すように ypserv を開始します。
# service ypserv start Setting NIS domain name thegeekstuff.com: [ OK ] Starting YP server services: [ OK ]
/etc/ypserv.conf ファイルには、いくつかの NIS サーバー構成パラメーターが設定されています。ただし、このファイルのデフォルト値を変更する必要はありません。
4. NIS データベースの生成
ypserv をインストールして起動したら、NIS データベースを生成します。すべての NIS データベースは、/var/yp ディレクトリの下に保存されます。データベースを生成する前に、/var/yp の下にドメイン名のディレクトリが表示されません。
# ls -l /var/yp total 36 drwxr-xr-x 2 root root 4096 May 18 2010 binding -rw-r--r-- 1 root root 16669 Oct 31 2008 Makefile -rw-r--r-- 1 root root 185 Jun 6 2007 nicknames
以下に示すように、ypinit プログラムを使用して NIS データベースを生成します。データベースを生成するには、NIS サーバーのホスト名を入力するだけです。
# /usr/lib/yp/ypinit -m Please continue to add the names for the other hosts, one per line. When you are done with the list, type a . next host to add: prod-db next host to add: The current list of NIS servers looks like this: prod-db Is this correct? [y/n: y] y We need a few minutes to build the databases... Building /var/yp/thegeekstuff.com/ypservers... Running /var/yp/Makefile... gmake[1]: Entering directory `/var/yp/thegeekstuff.com' Updating passwd.byname... Updating passwd.byuid... Updating group.byname... Updating group.bygid... Updating hosts.byname... Updating hosts.byaddr... ... gmake[1]: Leaving directory `/var/yp/thegeekstuff.com' prod-db has been set up as a NIS master server. Now you can run ypinit -s prod-db on all slave server.
データベースを生成すると、以下に示すように、ドメインの新しいディレクトリが /var/yp の下に作成されていることがわかります。
# ls -l /var/yp total 44 drwxr-xr-x 2 root root 4096 Oct 8 10:59 thegeekstuff.com drwxr-xr-x 2 root root 4096 May 18 2010 binding -rw-r--r-- 1 root root 16669 Oct 31 2008 Makefile -rw-r--r-- 1 root root 185 Jun 6 2007 nicknames -rw-r--r-- 1 root root 10 Aug 31 10:58 ypservers
/var/yp/ypservers には、NIS サーバーのホスト名が含まれます。
# cat /var/yp/ypservers prod-db
5.インストールの確認
ypcat NIS クライアント プログラムを使用して passwd ファイルにアクセスできるかどうかを確認して、NIS サーバーのインストールを確認します。
# ypcat passwd No such map passwd.byname. Reason: Can't bind to server which serves this domain
システムで ypbind が実行されていない可能性があるため、上記のエラー メッセージが表示される場合があります。 ypbind を開始して構成を確認するだけです。
# service ypbind start # ypcat passwd ramesh:R7EFEGJ1mxRGwVLVC.:401:401::/home/ramesh:/bin/bash john:QtlRW$Fx.uZvD:402:402::/home/john:/bin/bash
暗号化された passwd フィールドを ypcat passwd 出力に表示したくない場合は、以下に示すように、/var/yp/Makefile で MERGE_PASSWD を false に設定してください。
# vi /var/yp/Makefile MERGE_PASSWD=false
上記を実行すると、ypcat passwd コマンドは passwd ファイルに「x」を表示するだけです。
# ypcat passwd ramesh:x:401:401::/home/ramesh:/bin/bash john:x:402:402::/home/john:/bin/bash
いつでも変更を加えます (Makefile の更新またはデータベースの変更)。たとえば、新しいユーザーを追加したり、既存のユーザー アカウントを変更したりする場合は、次の操作を行う必要があります。これがないと、変更はどの NIS クライアントにも反映されません。
# cd /var/yp # make
これを NIS サーバーのルート cron ジョブに追加して、15 分ごとに実行することをお勧めします。これにより、NIS データベースに何らかの変更を加えるたびに、これを手動で実行することを心配する必要がなくなります。
NIS クライアントの構成
NIS クライアントで次の手順を実行する必要があります。上記の例では、prod-db というサーバー名に NIS サーバーをインストールしました。認証用に prod-db の /etc/passwd ファイルを使用する別の Linux サーバー dev-db が必要な場合は、dev-db サーバー (NIS クライアント) で次の手順を実行する必要があります。
6.クライアントにドメイン名を設定
このサーバーでドメイン名が正しく設定されていることを確認してください。これが適切なドメイン名を返さない場合。 「domainname {your-domain}」を実行して、サーバーにドメイン名を設定します。
# domainname thegeekstuff.com
domainname コマンドは、ドメイン名を一時的に設定します。つまり、システムを再起動すると、ドメイン名はなくなります。ドメイン名を永続的にするには、ネットワーク ファイルを更新し、NISDOMAIN パラメータを次のように設定します。
# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=dev-db GATEWAY=192.168.1.4 NISDOMAIN=thegeekstuff.com
7.クライアントで NIS サーバー名を設定する
次の行を /etc/yp.conf ファイルに追加します。これは、NIS サーバーが prod-db であることを NIS クライアントに指示します。以下の prod-db の代わりに、prod-db サーバーの IP アドレスを指定することもできます。
# vi /etc/yp.conf domain thegeekstuff.com server prod-db
8.クライアントで ypbind を開始
ypbind は、NIS バインド プログラムです。これにより、NIS ドメインの NIS サーバーが検索され、NIS バインディング情報が保持されます。
ypbind が NIS クライアント サーバーで稼働中であることを確認します。ほとんどの Linux ディストリビューションには、ypbind が既にインストールされています。実行されていない場合は、開始してください。
# ps -ef | grep ypbind # service ypbind start
ypcat NIS クライアント プログラムを使用して passwd ファイルにアクセスできるかどうかを確認して、NIS サーバーのインストールを確認します。
# ypcat passwd No such map passwd.byname. Reason: Can't bind to server which serves this domain
システムで ypbind が実行されていない可能性があるため、上記のエラー メッセージが表示される場合があります。 ypbind を開始して構成を確認するだけです。
# service ypbind start # ypcat passwd ramesh:x.:401:401::/home/ramesh:/bin/bash john:x:402:402::/home/john:/bin/bash