前のページ 次のページ 目次

7. NYS のセットアップ

7.1 マスターサーバ、スレーブサーバ、クライアントを決める

やはり二種類の場合を考える必要があります。

最初の場合には二つの選択があります。

二番めに相当する場合、つまり NIS サーバが無い場合は trad-NIS のセットアップ の章で説明した場合のように、 ypserv のようなうな NIS サーバプログ ラムも必要になります。またネットワーク上のどの計算機を NIS のマスター サーバにするのかを決めなくてはなりません。前にも書きましたが、スレーブ サーバを少なくとも一台は設定したほうが良いということも頭に入れておいて 下さい。

7.2 必要なソフトウェア

まず NYS ライブラリ libnsl.so を入手し、コンパイルする必要があり ます。 DLL を作るための環境が手元にない場合は、コンパイル済の共有ライ ブラリ、スタティックライブラリ、スタッブライブラリーも手に入れて下さい。 これらは以下に示すサイトに置いてあります。コンパイル済みのライブラリは 配布されているソースよりもバージョンの古い可能性があることに注意して下 さい。

NYS ライブラリ(ソース/コンパイル済のもの)は以下のサイトにあります。

ここには nys-0.27.?.tar.gz という名前でソースファイルが置いてあり ます。

ここにはバイナリの libnsl.so.1.0.a26 が置かれています。

コンパイル済みの loginsu コマンドが置いてあるサイトです。

それぞれ loginsu というファイルが置いてあります。

同様に設定ファイルの例が以下から手に入ります。

*conf という名前で置いてあります。

nsl ライブラリのコンパイルは付属のドキュメントの指示に従って行います。 共有ライブラリをコンパイルしたい場合には、 DLL ツールを標準的な場所である /usr/dll に置いて下さい。 DLL のツールは tools-2.11.tar.gz というパッケージになっており、多くのサイトから 手に入れることができます。

訳注: ELF ライブラリを作成する場合は DLL ツールは不要です。 GCC-HOWTO などを参考にしてください。

7.3 NYS を用いた NIS クライアントの設定

trad-NIS と異なり、 NIS クライアントの場合には難しい設定はあり ません。 NIS 設定ファイル(/etc/yp.conf)を書き換えて、正しい サーバから情報をもらうようにするだけです。ネームサービススイッチの設定 ファイル (/etc/nsswitch.conf)も正しく設定する必要があります。

ソースコードに付属している例を参照して下さい。

7.4 nsswitch.conf ファイル

ネットワークサービススイッチファイル(/etc/nsswitch.conf)は、 情報が要求された時にそれを検索する順序を指定するファイルです。 /etc/host.conf がホストの検索順序を決定するファイルであるのと 同じことです。詳しくはソースコードに付属の例をご覧下さい。例えばこのファ イル中では以下のような指定が可能です。

hosts: files nis dns

これはホストを探す場合に、まずローカルの /etc/hosts を検索し、 次に NIS で検索し、それでも見つからない場合は、DNS(ドメインネームサー ビス)で検索することを表しています。以上の検索で見つけられない場合には、 エラーが返されます。

訳注: nisdns を先にするときは、サーバが落ちていたときな どのために

hosts: nis [NOTFOUND=return] dns [NOTFOUND=return] files
というオプションをつけておくと良いでしょう。

7.5 NYS 入り libc ライブラリの作成

それぞれのバイナリを NYS ライブラリ libnsl.so を用いてリンクしな おす代わりに、 NYS を理解する libc を作ることもできます。つまり新 しい libc をコンパイルして、できたライブラリを現在の /lib/libc.so.x.y.z と置き換えれば、すべての(スタティックリンク ではない)プログラムが NYS を理解するようになります。

この NYS を libc にマージする作業によって、 trad-NIS では 得られなかった利点も得られます。 /etc/nisswitch.conf の指定に よって shadow password を透過的にサポートできるようになるのです。

以下のステップを踏めば簡単に NYS 込みの libc を作ることができます。

コンパイルが終了すると、libc.so.4.5.26 といったような名前のファイ ルが jump/libc-nys ディレクトリにできているはずです。このライ ブラリを /lib にインストールするにあたっては、現存のライブラ リのバージョン番号よりも進めた番号を付けることをお薦めします。 "a" を付けるだけでも良いでしょう。例えば以下のように します。

% cp jump/libc-nys/libc.so.4.5.26 /lib/libc.so.4.5.26a

解りやすくしたければ "nys" を付けるのも良いでしょう。 コピーしたら

% ldconfig

を実行します。するとキャッシュがリセットされ、新しいライブラリが利用さ れるようになります。ダイナミックリンカの情報は "ldconfig -p" を実行することによって確認できます。

これで基本的にはおわりです。すべてのプログラムが NYS を理解するように なったはずです。ただし login プログラムは通常スタティックにリンク されており、従って NYS libc を作るだけではだめなことに注意して下 さい。これを解決するには login-static フラグなしでコンパ イルするか、 libnsl.a ライブラリをリンクするようにしてスタティッ クリンクするようにして下さい。

訳注:最近は login もダイナミックリンクになっていることが多いようです。

% ldd /bin/login
などで確認してください。


前のページ 次のページ 目次