Linux の NIS+ クライアントコードは GNU C ライブラリのバージョン 2 用に 開発されてきました。かっては商用アプリケーションのほとんどが libc5 にリンクされていて、それらを glibc で再コンパイルすることはできなかったため、 この NIS+ コードを libc5 へ移植したものもあります。 ただし libc5 と NIS+ の組み合わせには問題があります。 スタティックなプログラムは libc5 にリンクすることはできませんし、 libc5 ライブラリ環境でコンパイルしたプログラムは 他のバージョンの libc5 (を使ったシステム) では動作しません。
ベースとなるシステムとして、Debian, Red Hat Linux, SuSE Linux のような glibc ベースのディストリビューションが必要です。 glibc 2.1.1 以降を備えていないディストリビューションを使っている場合は、 新しい版にアップデートする必要があります。
NIS+ クライアントのソフトウェアは以下から入手できます。
Site and Directory | Filename |
---|---|
ftp.gnu.org:/pub/gnu/glibc/ | glibc-2.3.2.tar.gz |
glibc-linuxthreads-2.3.2.tar.gz | |
ftp.kernel.org:/pub/linux/utils/net/NIS+ | nis-utils-1.4.1.tar.gz |
http://www.linux-nis.org/nisplus/ には、より詳細な情報と最新のソースがあります。
重要: NIS+ クライアントをセットアップする前に、 Solaris の NIS+ ドキュ メントを読んでサーバ側で必要な作業を行って下さい。この文書ではクライア ント側でどうすればよいかについてしか述べていません!
新しい libc と nis-tools をインストールしたら、 NIS+ サーバ上でこの新たなクライアント用の信任証 (credential) を作成します。 portmap が動作していることを確認するようにして下さい。 次にクライアントにする Linux PC の時刻が NIS+ サーバと一致しているかチェックして下さい。 secure RPC の場合は、信任証の有効期間は 3 分しかありません。すべてのホストで xntpd を走らせるのが良いでしょう。 これらが確認できたら以下を実行します。
domainname nisplus.domain. nisinit -c -H <NIS+ server> |
これによって cold スタートファイルが初期化されます。 他のオプションについては nisinit のマニュアルページを読んで下さい。 ドメインネームはリブートのたびに設定されるようにしておいて下さい。 あなたのネットワークの NIS+ ドメインネームがわからない場合は、 システムかネットワークの管理者に尋ねて下さい。
次に /etc/nsswitch.conf ファイルを変更します。 publickey に書けるサービスは nisplus だけ ("publickey: nisplus") で、 他のものは書いてはならないことに注意して下さい。
次に keyserv を起動して下さい。これはブート時に、 必ず portmap の直後に起動されるようにしておいて下さい。こうして
keylogin -r |
niscat passwd.org_dir とすれば、 passwd データベースのすべてのエントリを見ることができるはずです。
ログインしたときに、ユーザは自分の秘密鍵を keyserv にセットする必要があります。 これには keylogin を用います。 glibc 2.1 とコンパイルした場合には、 shadow パッケージの login はこれをユーザの代わりに実行してくれます。 PAM を認識する login を用意するには、 pam_keylogin-1.2.tar.gz をインストールし、 /etc/pam.d/login ファイルを変更して pwdb の代わりに pam&_unix_auth を使うようにする必要があります (pwdb は NIS+ をサポートしません)。例を示します。
#%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_unix2.so set_secrpc auth required /lib/security/pam_nologin.so account required /lib/security/pam_unix2.so password required /lib/security/pam_unix2.so session required /lib/security/pam_unix2.so |
ネットワークサービススイッチのファイル /etc/nsswitch.conf は、 情報へのアクセス要求が来たときに行う検索の順番を決定するものです。 ホスト名の検索で用いられる /etc/host.conf ファイルと似ています。 例えばこのファイルにおいて
hosts: files nisplus dns |
と指定すれば、ホスト名の検索機能はまずローカルの /etc/hosts ファイルを探し、次に NIS+、そしてドメインネームサービス (/etc/resolv.conf と named) と言う順番で検索を行います。 最後までマッチするものがなければエラーが返されることになります。
NIS+ 用の /etc/nsswitch.conf ファイルは、 以下のようなものにしておけば良いでしょう。
# # /etc/nsswitch.conf # # An example Name Service Switch config file. This file should be # sorted with the most-used services at the beginning. # # The entry '[NOTFOUND=return]' means that the search for an # entry should stop if the search in the previous entry turned # up nothing. Note that if the search failed due to some other reason # (like no NIS server responding) then the search continues with the # next entry. # # Legal entries are: # # nisplus Use NIS+ (NIS version 3) # nis Use NIS (NIS version 2), also called YP # dns Use DNS (Domain Name Service) # files Use the local files # db Use the /var/db databases # [NOTFOUND=return] Stop searching if not found so far # passwd: compat group: compat shadow: compat passwd_compat: nisplus group_compat: nisplus shadow_compat: nisplus hosts: nisplus files dns services: nisplus [NOTFOUND=return] files networks: nisplus [NOTFOUND=return] files protocols: nisplus [NOTFOUND=return] files rpc: nisplus [NOTFOUND=return] files ethers: nisplus [NOTFOUND=return] files netmasks: nisplus [NOTFOUND=return] files netgroup: nisplus bootparams: nisplus [NOTFOUND=return] files publickey: nisplus automount: files aliases: nisplus [NOTFOUND=return] files |