The Linux NIS(YP)/NYS/NIS+ HOWTO Thorsten Kukuk v1.0, 9 March 1999 中野武雄 v1.0j2, 11 Jun 1999 この文書では Linux を NIS(YP) または NIS+ のクライアントに設定する方 法、および NIS サーバをインストールする方法について述べます。 ______________________________________________________________________ 目次 1. はじめに 1.1 この文書の最新版 1.2 免責 1.3 フィードバックと今後の改版 1.4 謝辞 2. 用語集と一般的な情報 2.1 用語集 2.2 一般的な情報 2.3 NIS か NYS か NIS+ か 2.4 libc 4/5 では trad-NIS か、それとも NYS ライブラリか? 2.5 glibc 2 と NIS/NIS+ 2.6 NIS か NIS+ か? 3. 動作原理 3.1 NIS の動作原理 3.2 NIS+ の動作原理 4. RPC ポートマッパ 5. NIS の設定には何が必要か? 5.1 マスターサーバ、スレーブサーバ、クライアントを決める 5.2 ソフトウェア 5.3 ypbind デーモン 5.4 trad-NIS を用いた NIS クライアントをセットアップする 5.5 NYS を用いた NIS クライアントをセットアップする 5.6 glibc 2.x を用いた NIS クライアントをセットアップする 5.7 nsswitch.conf ファイル 6. NIS と PAM で Shadow パスワードを使う 6.1 Shadow パスワードと NIS 6.1.1 Linux 6.1.2 Solaris 6.1.3 PAM 7. NIS+ の設定には何が必要か? 7.1 ソフトウェア 7.2 NIS+ クライアントのセットアップ 7.3 NIS+, keylogin, login および PAM 7.4 nsswitch.conf ファイル 8. NIS サーバの設定 8.1 サーバプログラム ypserv 8.2 サーバプログラム yps 8.3 rpc.ypxfrd プログラム 8.4 rpc.yppasswdd プログラム 9. NIS/NYS インストールのチェック 10. NIS でよくおこる問題とその解決方法 11. よくある質問 (FAQ) ______________________________________________________________________ 1. はじめに 最近では Linux マシンがネットワークに接続されることがますます多くなっ てきました。 またネットワーク管理の簡略化のために、ほとんどのネットワ ーク (特に Sun がベースになっているネットワーク) では NIS が動いていま す。 Linux マシンでは、これらの NIS サービスを余すところなく受けたり、 また提供したりすることができます。 Linux マシンをすべての機能を持った NIS+ クライアントとしても動作させることもできます。が、これはまだベー タの段階です。 この文書は Linux マシンに NIS(YP) と NIS+ をセットアップする方法につい て記述したものです。いずれを採用するにしても ``RPC ポートマッパ'' の節 は必ず読んで下さい。 NIS-HOWTO は Thorsten Kukuk, によって編集とメンテナンスが行われています。 以前の NIS-Howto は以下の人々によって執筆されました。彼らに感謝しま す。 Andrea Dell'Amico Mitchum DSouza Erwin Embsen Peter Eriksson 訳注: v0.2 の日本語訳は根岸良征さん によって公開されました。 0.6 への追随と以降の更新は中野武雄 が行いました。 1.1. この文書の最新版 この文書の最新版はいつでも WWW で閲覧することができます。 URL は です。 このドキュメントの最新版は、 Linux 関連の WWW サイトや FTP サイトにも 登録されます。もちろん LDP のホームページにもあります。 翻訳文書へのリンクは に集められています。 訳注:日本語版の文書の最新版は に置かれます。 1.2. 免責 この文章は私の知識を最大限集めて書いたつもりですが、正確でない部分もあ るかもしれません。この文書で紹介しているプログラムについては、それぞれ に付属している README ファイルを必ず読んで下さい。 README ファイルには より詳しい説明やより正確な情報が書かれているはずですから。もちろんこの ドキュメントもできるだけ間違いのないものにしていきたいと考えています。 1.3. フィードバックと今後の改版 この文書に関する質問やコメントがありましたら、お気軽に Thorsten Kukuk までメールを下さい。アドレスは kukuk@suse.de です。提案や批判も歓迎し ます。この文書に誤りを見つけたら、私に連絡して下されば次の版で訂正しま す。よろしくお願いします。 訳注:翻訳に対するコメントは中野武雄 nakano@apm.seikei.ac.jp までお願 いします。 なお、あなたの Linux 配布パッケージに特有の問題に関しては私にメールを 送らないで下さい!私はすべての配布パッケージを知っている訳ではありませ ん。ただ、もし解決法も送っていただければ、文書に追加したいとは思ってい ます。 1.4. 謝辞 このドキュメントを作成するにあたって、直接的あるいは間接的にお世話にな りました以下の方々に感謝します。アルファベット順に: Byron A Jeff Markus Rex Miquel van Smoorenburg yp-clients のオリジナルコードは Theo de Raadt によって作成されました。 Swen Thuemmler が yp-clients のコードを Linux に移植し、 yp 関連のルー チン (これも Theo の仕事) を libc に移植しました。 Thorsten Kukuk は GNU libc 2.x 向けの NIS(YP) と NIS+ のルーチンをスクラッチから書きまし た。 訳注:日本語訳にあたっては、詳細な校正をして下さった松本庄司さん・武井 伸光さんをはじめ、 JF メーリングリストの皆さんにお世話になりました。 2. 用語集と一般的な情報 2.1. 用語集 このドキュメント中では多くの省略語が使われています。以下に重要なものの 説明を簡単に挙げておきます。 DBM データベースマネジメント (DataBase Management)。検索キーとデータ とのペアを管理するデータベース機能を持ったライブラリのこと。 DLL 動的リンクライブリ (Dynamically Linked Library)。プログラムの実 行時にリンクされるライブラリのこと。 domainname NIS サーバが発行するキーワード。 NIS クライアント側が使用する NIS サーバを特定するのに用いられる。この domainname は DNS の "domain" と同じものにする必要はなく、むしろ別にすべきである。 FTP ファイル転送プロトコル (File Transfer Protocol)。コンピュータ間 でファイルを転送する時に用いられるプロトコルの一つ。 libnsl ネームサービスライブラリ (Name services libraly)。 SVR4 Unix に おけるネームサービス関連の命令 (getpwnam, getservbyname など) の ライブラリ。 GNU libc では NIS (YP) および NIS+ 機能にこのライブ ラリを用いる。 libsocket ソケットサービスライブラリ (Socket services library)。ソケット関 係のシステムコール (socket, bind, listen など) を提供するライブ ラリ。 SVR4 Unix に実装されている。 NIS ネットワーク情報サービス (Network Information Service)。ネットワ ーク上のすべての計算機で必要な情報を共有するサービスのこと。 Linux の標準 libc ライブラリには NIS のサポートが含まれており、 これをこの文書では "trad-NIS" と記す。 (訳注:原文では "traditional NIS" でしたが、長いので訳者が勝手に造語しました) NIS+ Network Information Service (Plus)。基本的には NIS を機能アップ したもの。 NIS+ は Sun Microsystems Inc. によって設計され、 NIS を後継するものとされている。セキュリティが強化され、大きなシステ ムに導入するのが容易になっている。 NYS NYS は「NIS+、 YP、 Switch」を表すプロジェクト名である。 Peter Eriksson が管理している。このプロジェクトでは NIS(=YP) のコードを 0 から再実装しており、 NYS ライブラリのネー ムサービススイッチ機能を利用するようになっている。 NSS ネームサービススイッチ (Name Service Switch)。ファイル /etc/nsswitch.conf によって、各種の情報のリクエストに対して、ど んな順番で検索が行われるかを決定する。 RPC リモートプロシージャコール (Remote Procedure Call)。 C プログラ ム内で RPC ルーチンを利用すれば、ネットワーク上にある他の計算機 上の手続き(サブルーチン)を呼びだすことができる。通常の文脈におい ては Sun の RPC 実装の意味で用いられることが多い。 YP イエローページ (電話帳) (Yellow Pages (TM)) Yellow Pages は 英国 British Telecom 社の登録商標。 TCP-IP Transmission Control Protocol/Internet Protocol の略。 TCP/IP は Unix で非常によく使われているデータ通信プロトコルである。 2.2. 一般的な情報 次の内容は Sun(tm) System & Network Administration Manual から引用した ものです。 NIS はかつて サン・イエローページ (Sun Yellow Pages, YP) と 呼ばれていました。しかし「Yellow Pages」は英国 British Tele- com 社の登録商標で、許可無く使用することができませんので、 NIS と呼ぶことにしました。 NIS は Network Information Service の略です。ネットワーク上のすべての 計算機で共有すべき情報を提供する目的で用いられます。 NIS で提供される 情報とは、例えば以下のようなものです。 o ログイン名、パスワード、ホームディレクトリ (/etc/passwd) o グループ情報 (/etc/group) 例えば、あなたのパスワードが NIS の パスワードデータベースに登録されて いるとしましょう。するとあなたはネットワーク上で NIS の クライアントプ ログラムが動いている計算機なら、どの計算機にもログインすることができる ようになるのです。 Sun は Sun Microsystems 社の商標であり、 SunSoft 社にライセンス供与さ れています。 2.3. NIS か NYS か NIS+ か 2.4. libc 4/5 では trad-NIS か、それとも NYS ライブラリか? trad-NIS を用いるか NYS ライブラリの NIS コードを用いるかは、「低機能 だが安定」をとるか「柔軟だが冒険」をとるかの選択と言えます。 trad-NIS のコードは標準 C ライブラリに入ってからだいぶ経っています。生 まれが古い分、やや柔軟性に欠けるところがあります。 一方 NYS ライブラリの NIS コードを用いるには、libc ライブラリを再コン パイルして libnsl のコードを libc の中に含めるかする必要があります (そ のようにコンパイルされた libc ライブラリを入手できるかもしれません)。 また trad-NIS のコードでは NIS のネットグループ機能が使えますが、 NYS のコードには実装されていません。逆に NYS のコードでは Shadow Password を透過的に扱うことができるようになっていますが、 trad-NIS のコードは NIS 上での Shadow パスワードをサポートしていません。 2.5. glibc 2 と NIS/NIS+ GNU C Library 2.x (libc6 とも呼ばれます) を使っている場合は、以上の全 ては忘れて下さい。 libc6 では NSS (ネームスイッチサービス) を完全にサ ポートしており、非常に柔軟な運用ができるようになっています。また以下の NIS/NIS+ マップがサポートされています: aliases, ethers, group, hosts, netgroups, networks, protocols, publickey, passwd, rpc, services, shadow. GNU C Library では、 shadow パスワードを NIS でまっ たく問題なく扱うことができます。 2.6. NIS か NIS+ か? どちらを選ぶか悩む必要はありません。 特にセキュリティに過敏になる必要 がなかったり、NIS+ を使わねばならない理由がないのなら、 NIS を使いま しょう。 NIS+ の管理はずっと大変です (クライアント側ではそれほどでもあ りませんが、サーバー管理は地獄です)。 Linux 上での NIS+ はまだ開発段階 です。利用するには最新版の glibc 2.1 が必要があります。ちょっと試して みたい場合には、 glibc の NIS+ サポートを libc5 に移植したものも存在し ます (ただしこれは未サポート)。 3. 動作原理 3.1. NIS の動作原理 少なくとも 1 台の NIS のサーバーがネットワーク上で動作していなくてはな りません。複数のサーバを稼動させることもできます。この場合はそれぞれを 異なった NIS 「ドメイン」のサーバとするか、あるいは 2 台のサーバをひと つのドメイン上で協調して動作させることになります。後者の構成では一つの サーバを「マスターサーバ」、その他のサーバを「スレーブサーバ」と呼びま す。ドメインを複数、それぞれに対するサーバも複数、といったような構成も 可能です。 スレーブサーバは、マスターサーバの NIS データベースのコピーをだけを保 持します。マスターサーバの NIS データベースが変更されると、逐一それを 受け取ります。ネットワークに接続されている計算機の台数とネットワークの 信頼性を考慮し、スレーブサーバをインストールするかどうか (インストール する場合はその台数を) 決めて下さい。 NIS クライアントは、NIS サーバが 「落ちて」いたりレスポンスが遅かったりする場合には、落ちていないサーバ やもっとレスポンスの速いサーバとの接続を試みます。 NIS データベースは ASCII 形式のデータベースから変換された、いわゆる DBM フォーマットになっています。例えば /etc/passwd や /etc/group と いったファイルは、 ASCII-DBM 変換ソフト (makedbm: サーバソフトに入って います) を使って直接 DBMフォーマットに変換できます。 NIS のマスターサ ーバは ASCII 形式と DBM 形式のデータベースを両方を持っていなくてはなり ません。 スレーブサーバは NIS マップが変更されると通知を受けます (yppush プログ ラムが用いられます)。するとスレーブサーバは必要な変更を行い、データベ ースを同期させます。 NIS クライアントにこのような作業をする必要はあり ません。クライアントは常に NIS サーバに最新の DBM データベースの内容を 読みに行くからです。 ypbind の古いバージョンでは、動作中の NIS サーバを探すためにブロード キャストを用いるようになっていました。これはセキュリティ上問題がありま した。なぜなら誰かが NIS サーバをインストールしてブロードキャストの問 い合わせに答えるようにすることができるからです。新しいバージョンの ypbind (ypbind-3.3 または ypbind-mt) ではサーバを設定ファイルから取得 できます - したがってブロードキャストは不要です。 3.2. NIS+ の動作原理 NIS+ は Sun によるネットワークインフォメーションサービスの新しいバー ジョンです。 NIS と NIS+ の最も大きな違いは、 NIS+ ではデータの暗号化 と、 secure RPC を通した認証が可能になっている点です。 NIS+ の命名モデルはツリー構造に基づいています。ツリーのそれぞれのノー ドが NIS+ のオブジェクトに対応しており、これには六つのタイプがありま す。ディレクトリ (directory)、エントリ (entry)、グループ (group)、リン ク (link)、テーブル (table)、プライベート (private) です。 NIS+ の名前空間でルートとなる NIS+ ディレクトリは root ディレクトリと 呼ばれます。 NIS+ には二つの特別なディレクトリが存在します。 org_dir と groups_dir です。 org_dir ディレクトリにはすべての管理テーブルが含 まれます。例えば passwd, hosts, mail_aliases などです。 gourps_dir ディレクトリにはアクセスコントロールに用いられる NIS+ グループオブジェ クトが含まれます。 org_dir と group_dir、およびそれらの親ディレクトリ を集めたものが NIS+ ドメインとして参照されます。 4. RPC ポートマッパ これから説明していくソフトウェアを動かすためには、まず /usr/sbin/rpc.portmap を動作させておく必要があります。 Linux の配布 パッケージの中には、このデーモンを立ち上げるためのコマンドが /sbin/init.d や /etc/rc.d/ に書き込んであるものもありますので、その場 合は該当部分をアンコメントしてリブートするだけです。実際のやり方はディ ストリビューションのドキュメントを読みましょう。 RPC ポートマッパ (portmap(8)) は、 RPC プログラム番号を TCP/IP ポート 番号に変換するサーバプログラムです。 NIS クライアントプログラムがやっ ているように、 RPC サーバ (NIS サーバなど) に RPC コールするためには、 RPC ポートマッパが動いていなければなりません。 RPC サーバプログラム は、監視する TCP/IP ポート番号とデータを提供する RPC プログラム番号 を、起動時にポートマッパに伝えます。クライアントプログラムが、ある RPC プログラム番号にコールをおこなう時には、まずサーバマシン上の RPC ポー トマッパと交信して、どの TCP/IP ポート番号に RPC のパケットを送れば良 いのかを決定します。 通常 RPC サーバプログラムは inetd(8) によって起動されますので、 inetd を起動する前に RPC ポートマッパを起動するようにして下さい。 secure RPC を用いる場合には、ポートマッパは time サービスを必要としま す。すべてのホストの /etc/inetd.conf で、以下のように time サービスが 利用可能になっていることを確認して下さい。 # # Time service is used for clock syncronization. # time stream tcp nowait root internal time dgram udp wait root internal 重要:設定ファイル変更したあと inetd を再起動するのを忘れないこと! 5. NIS の設定には何が必要か? 5.1. マスターサーバ、スレーブサーバ、クライアントを決める まず以下の二つの場合を考える必要があります。 1. 接続するネットワーク上に NIS サーバがある場合。 2. 接続するネットワーク上に NIS サーバがない場合。 最初のケースでは ypbind, ypwhich, ypcat, yppoll, ypmatch といったクラ イアントプログラムを起動するだけで使えるようになります。一番重要なのは ypbind で、このプログラムは常に実行されている必要があります (つまり ps コマンドを実行したときにプロセステーブルに表示されなければなりませ ん)。 ypbind はいわゆるデーモンプロセスで、システムのスタートアップ ファイルから起動する必要があります (つまり /etc/init.d/nis, /sbin/init.d/ypclient, /etc/rc.d/init.d/ypbind, /etc/rc.local など)。 ypbind が起動されれば、その計算機はその時点から NIS クライアントとなり ます。 二番目のケース、つまり NIS サーバがない場合には、NIS サーバプログラム (通常は ypserv) も必要となります。この文書の ``NIS サーバの設定'' の章 では、 Linux マシンを NIS サーバに設定する方法について説明しています。 ここでは Peter Eriksson と Thorsten Kukuk による ypserv の実装を用いて います。この実装の 0.14 以降の版では ``NIS の動作原理'' の節で触れたマ スター/スレーブ機能をサポートしています。 他にもフリーな NIS サーバがあります。 yps というプログラムで、ドイツの Tobias Reber によって書かれたものです。マスター/スレーブ機能を備えて いますが、それ以外の点に制限があります。 5.2. ソフトウェア バージョン 4.4.2 以上のシステムライブラリ /usr/lib/libc.a もしくはシェ アードライブラリ /lib/libc.so.x には、 NIS のクライアントやサーバのプ ログラムをコンパイルするのに必要なシステムコールがすべて含まれていま す。 GNU C Library 2 (glibc 2.x) では /lib/libnsl.so.1 も必要です。 NIS は /usr/lib/libc.a バージョン 4.5.21 以上でしか動かないという報告 がありますので、安全のためには古いものは使わない方が良いでしょう。 NIS のクライアントプログラムは以下の場所で入手できます。 o ここには yp- tools-2.2.tar.gz, ypbind-mt-1.4.tar.gz, ypbind-3.3.tar.gz, ypbind-3.3-glibc5.diff.gz があります。 o yp-clients-2.2.tar.gz があります。 ソフトを手に入れたら、同梱されている説明にしたがって下さい。 yp- clients 2.2 は libc4 または 5.4.20 までの libc と共に用いて下さい。 libc 5.4.21 以降と glibc 2.x には yp-tools 1.4.1 以降が必要です。新し い yp-tools のバージョン 2.2 は、すべての Linux libc で動作します。 5.4.21 から 5.4.35 までの libc には、 NIS のコードにバグがあるので使わ ない方が良いでしょう。 libc 5.4.36 以降を使わないと、ほとんどの YP プ ログラムは動作しないでしょう。 ypbind 3.3 もすべてのライブラリで動作し ます。 gcc 2.8.x 以降か egcs、 glibc 2.x を利用している場合は、 ypbind-3.3-glibc5.diff ぱっちを ypbind 3.3 に当てる必要があります。 yp-clients 2.2 に入っている ypbind は決して使わないようにして下さい。 ypbind-mt は、新しく開発されたマルチスレッドのデーモンです。これは Linux 2.2 カーネルと glibc 2.1 以降が必要です。 5.3. ypbind デーモン ソフトウェアがうまくコンパイルされたら、インストールです。 ypbind デー モンは /usr/sbin に入れると良いでしょう。 NYS のシステムでは ypbind は 必要ないと言う人がいるかもしれませんが、これは間違いです。 ypwhich と ypcat には ypbind が必要です。 ypbind のインストールはもちろんスーパーユーザで行う必要があります。他 のバイナリ (ypwhich, ypcat, yppoll, ypmatch) はすべてのユーザーからア クセス可能なディレクトリにおきましょう。通常は /usr/bin が良いでしょ う。 最近の ypbind には設定ファイル /etc/yp.conf があります。ここに NIS サ ーバを直に書いておくこともできます。詳しくは ypbind(8) のマニュアルを 読んで下さい。このファイルは NYS でも必要です。以下は例です。 ypserver voyager ypserver defiant ypserver ds9 NIS なしでもホスト名の解決ができるシステムでは、 IP アドレスでなく名前 を用いることができます。そうでなければ IP アドレスを用います。 ypbind 3.3 にはバグがあり、最後のエントリ (上記の例では ypserver ds9) しか用 いられず、他は全て無視されます。 ypbind-mt では正しく扱うことができ、 最初に返事したサーバが用いられます。 ypbind をスタートアップファイルに入れる前にテストしておくことをお勧め します。 ypbind のテストは以下のようにして行います。 o YP のドメインネームが設定されていることを確認して下さい。設定されて いない場合は以下のようにします。 /bin/domainname nis.domain nis.domain は通常適当な文字列で、あなたのマシンの DNS ドメインネームと は違うものにすべきです。こうしておけば、外部のクラッカーがサーバから NIS パスワードデータベースを盗んでいくのがわずかながら困難になります。 NIS ドメイン名を知らない場合はシステム管理者かネットワーク管理者に尋ね て下さい。 o /usr/sbin/rpc.portmap が起動されていなければ起動します。 o /var/yp というディレクトリがなければ作成します。 o /usr/sbin/ypbind を起動します。 o ypbind がサービス内容をポートマッパに登録できたかどうか確かめるため に、 "rpcinfo -p localhost" というコマンドを実行して下さい。以下の ような出力が現われるはずです。 program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 637 ypbind 100007 2 tcp 639 ypbind あるいは使っているバージョンによっては program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100007 2 udp 758 ypbind 100007 1 udp 758 ypbind 100007 2 tcp 761 ypbind 100007 1 tcp 761 ypbind のようになるかもしれません。 o "rpcinfo -u localhost ypbind" も実行してみて下さい。以下のような表 示が出るはずです。 program 100007 version 2 ready and waiting あるいはインストールした ypbind のバージョンによっては program 100007 version 1 ready and waiting program 100007 version 2 ready and waiting のような出力になるかもしれません。重要なのは "version 2" のメッセージ だけです。 ここまで来れば ypcat のような NIS クライアントプログラムを実行すること ができるはずです。 例えば NIS のパスワードデータベースを参照したい場合 には、 "ypcat passwd.byname" とします。 重要: もし上述の ypbind のテストを飛ばした場合、少なくともドメインネー ムが設定してあることと /var/yp という名前のディレクトリが作ってあるこ とを確認して下さい。 /var/yp がないと ypbind は正常に起動されません。 ドメインネームの設定が正しいかどうかをチェックするには、 yp-tools 2.2 の /bin/ypdomainname を使って下さい。このプログラムは yp_get_default_domain() 関数を使うので、より厳しいチェックができます。 例えば Linux でデフォルトになっている (そして多くの問題の原因になって いる) "(none)" のようなドメイン名は、このプログラムでは許可されませ ん。 テストがうまくいったらスタートアップファイルを変更して、ブート時に ypbind が起動されるようにしておくと良いでしょう。自動的に NIS クライア ントとしての活動が開始されます。 ypbind の起動前に、ドメインネームが設 定されるようにするのも忘れないこと。 以上で設定は終了しました。リブートしてから、ブートメッセージで ypbind が正常に動作しているかどうか確認して下さい。 5.4. trad-NIS を用いた NIS クライアントをセットアップする ホストの名前解決に NIS を用いるには、 /etc/host.conf ファイルで解決順 を指定するラインに "nis" を指定 (または追加) して下さい。詳細に付いて は resolv+(8) のマニュアルを読んで下さい。 以下の行を NIS クライアントの /etc/passwd に追加して下さい。 +:::::: また + や - といった文字を使うことで、ユーザーを追加/削除したり状態を 変更したりすることができます。例えばユーザ guest を削除したいなら /etc/passwd ファイルに -guest を追加すれば OK です。ユーザ "linux" に 違ったシェル (例えば ksh) を使わせたいですって?大丈夫、 "+linux::::::bin/ksh" を /etc/passwd に追加するだけです (引用符は取っ て下さい)。変更したくないフィールドは空のままにしておく必要がありま す。ユーザのコントロールにはネットグループを用いることもできます。 例えば「ログインアクセスを miquiels, dth, ed とネットグループ sysadmin のメンバーだけに限りたいが、アカウントデータは他のユーザ全員分が必要」 というような場合は以下のようになります。 +miquels::::::: +ed::::::: +dth::::::: +@sysadmins::::::: -ftp +:*::::::/etc/NoShell Linux ではパスワードのフィールドも上書きできることに注意して下さい。や り方は今の例と全く同じです。この例では "ftp" のログインも削除していま す。従ってこのユーザは存在しなくなり、 anonymous ftp は機能しなくなり ます。 /etc/netgroup ファイルは以下のようになっていると思います。 sysadmins (-,software,) (-,kukuk,) 重要:ネットグループの機能は libc 4.5.26 から実装されました。 4.5.26 以前の libc を使っている Linux マシンで ypbind を実行すると、 NIS のパ スワードデータベースにエントリを持つすべてのユーザはそのマシンにアクセ スできてしまいます! 5.5. NYS を用いた NIS クライアントをセットアップする 必要なのは NIS の設定ファイル (/etc/yp.conf) で正しいサーバ(群)から情 報をもらえるようにしておくこと、そしてネームサービススイッチの設定ファ イル (/etc/nsswitch.conf) を正しく設定することです。 ypbind もインストールしておきましょう。 libc には必要ありませんが、 NIS(YP) の各ツールでは ypbind が必要になります。 ユーザの追加・排除機能 (+/-guest/+@admins) を用いたい場合は、 "passwd: compat" と "group: compat" を nsswitch.conf で指定する必要があります。 "shadow: compat" という指定はありません。この場合は "shadow: files nis" のようにして下さい。 NYS のソースは libc 5 のソースに同梱されています。 configure を実行 し、 "Values correct" の問いに対して一度目は "NO" と答えて下さい。そし て "Build a NYS libc from nys" に対して "YES" と答えて下さい。 5.6. glibc 2.x を用いた NIS クライアントをセットアップする glibc は trad-NIS を利用します。従って ypbind を起動する必要がありま す。またネームサービススイッチの設定ファイル (/etc/nsswitch.conf) も正 しく設定する必要があります。 passwd, shadow, group に compat モードを 使う場合は、これらのファイルの最後に "+" を追加する必要があります。ユ ーザの追加・削除機能を用いることもできます。設定は Solaris 2.x のもの とまったく同じです。 5.7. nsswitch.conf ファイル ネットワークサービススイッチのファイル /etc/nsswitch.conf は情報へのア クセス要求が来たときに行う検索の順番を決定するものです。ホスト名の検索 で用いられる /etc/host.conf ファイルと似ています。例えばこのファイルに おいて hosts: files nis dns と指定すれば、ホスト名の検索機能はまずローカルの /etc/hosts ファイルを 探し、次に NIS、そしてドメインネームサービス (/etc/resolv.conf と named) という順番で検索を行います。最後までマッチするものがなければ、 エラーが返されることになります。このファイルは全てのユーザから読み取り 可能でなければなりません!より詳細な情報は nsswitch.5 か nsswitch.conf.5 のマニュアルページを見てください。 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 # For libc5, you must use shadow: files nis shadow: compat passwd_compat: nis group_compat: nis shadow_compat: nis hosts: nis files dns services: nis [NOTFOUND=return] files networks: nis [NOTFOUND=return] files protocols: nis [NOTFOUND=return] files rpc: nis [NOTFOUND=return] files ethers: nis [NOTFOUND=return] files netmasks: nis [NOTFOUND=return] files netgroup: nis bootparams: nis [NOTFOUND=return] files publickey: nis [NOTFOUND=return] files automount: files aliases: nis [NOTFOUND=return] files ______________________________________________________________________ passwd_compat, group_compat, shadow_compat は glibc 2.x でのみサポート されています。 /etc/nsswitch.conf に shadow ルールがなければ、 glibc はパスワードの検索に passwd ルールを用います。 glibc 用の検索モジュー ルとして、 hesoid のようなものも存在しています。これについては glibc の文書を読んでください。 6. NIS と PAM で Shadow パスワードを使う 6.1. Shadow パスワードと NIS NIS に shadow パスワードを流通させるのは良い考えではありません。 shadow システムのメリットであるセキュリティが失われてしまうからです。 それにこれがサポートされている Linux C ライブラリは少数に過ぎません。 NIS 上に shadow を流さないようにするには、ローカルシステムのユーザだけ を /etc/shadow に登録することです。 NIS に流すユーザエントリを shadow データベースから削除し、それらのパスワードは passwd に書いて下さい。こ うすれば root ログインには shadow を、一般の NIS ユーザには passwd を 用いることができるようになります。この方法なら、すべての NIS クライア ントでうまく動作します。 6.1.1. Linux NIS で shadow パスワードを用いることができる唯一の Linux libc は GNU C Library 2.x です。 Linux libc5 はこれをサポートしていません。 Linux libc5 を NYS と一緒にコンパイルした場合は、多少のコードが含まれること にはなります。でもこのコードは状況によってはひどく壊れてしまい、 shadow エントリが全て正しい場合でも動作しないことがあります。 6.1.2. Solaris Solaris は NIS 上での shadow パスワードをサポートしていません。 6.1.3. PAM PAM は NIS 上での shadow パスワードをサポートしません。特に pam_pwdb/libpwdb がだめなんです。これは RedHat 5.x ユーザにとって大き な問題です。 glibc と PAM を使っている場合は、 /etc/pam.d/* のエントリ を変更する必要があります。 pam_unix_* モジュールにある pam_pwdb のルー ルを置き換えて下さい。しかし pam_unix_auth.so モジュールにはバグがある ので、これは必ず動作するとは限りません。 /etc/pam.d/login の例としては以下のようになるでしょう。 #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pam_unix_auth.so auth required /lib/security/pam_nologin.so account required /lib/security/pam_unix_acct.so password required /lib/security/pam_unix_passwd.so session required /lib/security/pam_unix_session.so auth には pam_unix_auth.so モジュールを用い、account には pam_unix_acct.so を、 password には pam_unix_passwd.so を、 session に は pam_unix_session.so を用います。 7. NIS+ の設定には何が必要か? 7.1. ソフトウェア Linux の NIS+ クライアントコードは GNU C ライブラリのバージョン 2 用に 開発されてきました。これを libc5 へ移植したものもあります。商用アプリ ケーションのほとんどは libc5 にリンクされていますし、これらアプリケー ションを glibc 向けに再コンパイルすることはできませんから。ただし libc5 と NIS+ を同時に使う際には問題があります。スタティックなプログラ ムは libc5 にリンクすることはできませんし、このライブラリでコンパイル したプログラムは他のバージョンの libc5 では動作しません。 GNU C Library 2.1 を手に入れ、コンパイルする必要があります。 64bit プ ラットフォームなら GNU C Library 2.1.1 です。ベースのシステムとして、 glibc ベースの配布パッケージも必要になります。 Debian 2.x, RedHat 5.x, SuSE Linux 6.x などです。 どのディストリビューションでも、 gcc/g++ コンパイラ、 libstdc++, ncurses を再コンパイルしなければなりません。 Redhat では PAM の設定を 大幅に変更しなければなりません。 SuSE Linux 6.0 では shadow パッケージ を再コンパイルしなければなりません。 NIS+ クライアントのソフトウェアは以下から入手できます。 o には libc-*, glibc-crypt-*, glibc-linuxthreads-* が置かれています。 o には nis- utils-19990223.tar.gz, pam_keylogin-1.2.tar.gz が置かれています。 glibc ベースの配布パッケージは以下から入手できます。 o o o GNU C ライブラリのコンパイルは、ソフトウェアに付属の説明に従って下さ い。 NYS や glibc のソースをベースにした libc5 へのパッチも存在しま す。以下に場所を示します。これらは標準 libc5 をちょっと置き換えてみる 場合などに適しています。 o ファイル名は libc-5.4.44-nsl-0.4.10.tar.gz です。 には、より詳細な情報と 最新のソースがあります。 7.2. NIS+ クライアントのセットアップ 重要: NIS+ クライアントをセットアップする前に、 Solaris の NIS+ ド キュメントを読んでサーバ側で必要な作業を行って下さい。この文書ではクラ イアント側でどうすればよいかについてしか述べていません! 新しい libc と nis-tools をインストールしたら、NIS+ サーバ上でこの新た なクライアント用の信任証 (credential) を作成します。 portmap が動作し ていることを確認するようにして下さい。次にクライアントにする Linux PC の時刻が NIS+ サーバと一致しているかチェックして下さい。 secure RPC の 場合は、信任証の有効期間は 3 分しかありません。すべてのホストで xntpd を走らせるのが良いでしょう。これらが確認できたら以下を実行します。 domainname nisplus.domain. nisinit -c -H を実行して cold スタートファイルを初期化します。他のオプションについて は nisinit のマニュアルページを読んで下さい。ドメインネームはリブート のたびに設定されるようにしておいて下さい。あなたのネットワークの NIS+ ドメインネームがわからない場合は、システムかネットワークの管理者に尋ね て下さい。 次に /etc/nsswitch.conf ファイルを変更します。 publickey に書けるサー ビスは nisplus だけ ("publickey: nisplus") で、他のものは書いてはなら ないことに注意して下さい。 次に keyserv を起動して下さい。これはブート時に必ず portmap の直後に起 動されるようにしておいて下さい。 keylogin -r とすればシステムの root の秘密鍵が保管されます (もうこの新しいホストの 公開鍵は NIS+ のサーバに追加しましたよね?)。 "niscat passwd.org_dir" とすれば、 passwd データベースのすべてのエント リを見ることができるはずです。 7.3. NIS+, keylogin, login および PAM ログインしたときに、ユーザは自分の秘密鍵を 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_keylogin.so auth required /lib/security/pam_unix_auth.so auth required /lib/security/pam_nologin.so account required /lib/security/pam_unix_acct.so password required /lib/security/pam_unix_passwd.so session required /lib/security/pam_unix_session.so 7.4. nsswitch.conf ファイル ネットワークサービススイッチのファイル /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 # for libc5: passwd: files nisplus group: compat # for libc5: group: files nisplus shadow: compat # for libc5: shadow: files nisplus 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 ______________________________________________________________________ 8. NIS サーバの設定 8.1. サーバプログラム ypserv この文書では、 NIS サーバとしては "ypserv" の設定方法のみを記します。 NIS サーバのソフトは以下にあります。 o ファイル名は ypserv-1.3.6.tar.gz です。 には、より詳しい情報があり ます。 サーバのセットアップ方法は trad-NIS、 NYS どちらの場合でも同じです。 コンパイルして ypserv と makedbm を作ります。 securenets ファイルを使 うか tcp_wrappers を使うかを設定できます。 tcp_wrapper の方がずっと柔 軟ですが、これが問題の原因となる場合も多く知られています。 tcp_wrapper 用の設定ファイルの書き方によってはメモリーリークを起こすこともありま す。もし tcp_wrapper を使うように ypserv をコンパイルして問題が起こっ た場合には、 securenets ファイルを用いるようにコンパイルしなおしてくだ さい。 ypserv --version とすればどちらのバージョンを使っているか分かり ます。 サーバをマスターとして起動する場合は、NIS を用いて共有させるファイルを 決めてください。そして /var/yp/Makefile の "all" ルールに必要なものを 加えたり、不要なものを削除したりしてください。また Makefile の先頭の方 も必ず見て、オプションを自分の環境にあわせて編集しておくべきです。 ypserv 1.1 と ypserv 1.2 との間では、大きな変更が行われました。 1.2 以 降では、ファイルハンドルがキャッシュされるようになったのです。これによ り、新しいマップを生成するときには必ず makedbm に -c オプションをつけ なければならなくなりました。 /var/yp/Makefile が ypserv 1.2 以降に付属 のものであることを確認して下さい。あるいは Makefile 中の makedbm に、 手で -c フラグを加えて下さい。これを忘れると、ypserv は更新されたマッ プではなく、古いマップを使い続けてしまいます。 次に /var/yp/securenets と /etc/ypserv.conf を編集します。詳細に関して は、 ypserv(8) と ypserv.conf(5) のマニュアルページを読んで下さい。 ポートマッパ (rpc.portmap) が動いているか確認して下さい。確認できたら ypserv を動かします。 % rpcinfo -u localhost ypserv というコマンドを実行してみて、 program 100004 version 1 ready and waiting program 100004 version 2 ready and waiting と出力されることを確認して下さい。 "version 1" の行は、 ypserv のバージョンや用いた設定によっては出ないか もしれません。これが必要になるのは昔の SunOS 4.x をクライアントとして 使う場合だけです。 ここで NIS (YP) データを作成します。マスターサーバで以下を実行して下さ い。 % /usr/lib/yp/ypinit -m スレーブサーバでは、 ypwhich -m が機能することを確認して下さい。つまり スレーブにするホストは、まず NIS クライアントとして動作できなければな らないのです。確認できたら以下を実行します。 % /usr/lib/yp/ypinit -s masterhost これでおしまい、サーバは動作しているはずです。 何か大きな問題が生じたら、 ypserv や ypbind を別の xterm からデバッグ モードで起動してみましょう。デバッグ出力から何が問題なのかが判断できる はずです。 マップを更新する必要が生じた場合は、 NIS マスターの /var/yp ディレクト リで make を実行してください。ソースファイルが新しい場合にはマップが更 新され、スレーブサーバに push されます。マップの更新には ypinit は用い ないようにしてください。 「スレーブ」サーバ上では root の crontab を編集し、以下のような行を追 加しておくと良いかもしれません。 20 * * * * /usr/lib/yp/ypxfr_1perhour 40 6 * * * /usr/lib/yp/ypxfr_1perday 55 6,18 * * * /usr/lib/yp/ypxfr_2perday 万が一マスタサーバでの更新の際にスレーブがダウンしていてデータを受け損 なっても,これによって NIS マップを最新に保つことができます。 スレーブはいつでも追加することができます。まず新しくインストールしたス レーブサーバが NIS マスターに接続する許可を持っているかを確認しましょ う。次に % /usr/lib/yp/ypinit -s masterhost を新しいスレーブで実行します。マスターサーバでは、この新しいスレーブサ ーバの名前を /var/yp/ypservers に追加し、 /var/yp で make を実行して マップを更新します。 NIS サーバへのユーザアクセスを制限したい場合は、 NIS サーバのホストを クライアントとしても実行する必要があります。つまり ypbind を実行して + の付いたエントリをパスワードファイル /etc/passwd の半ばに追加します。 ライブラリ関数は NIS エントリ以降に置かれた通常のエントリを全て無視 し、残りを NIS を通して取得します。このようにすると NIS のアクセスルー ルを管理することができます。例を示します。 root:x:0:0:root:/root:/bin/bash daemon:*:1:1:daemon:/usr/sbin: bin:*:2:2:bin:/bin: sys:*:3:3:sys:/dev: sync:*:4:100:sync:/bin:/bin/sync games:*:5:100:games:/usr/games: man:*:6:100:man:/var/catman: lp:*:7:7:lp:/var/spool/lpd: mail:*:8:8:mail:/var/spool/mail: news:*:9:9:news:/var/spool/news: uucp:*:10:50:uucp:/var/spool/uucp: nobody:*:65534:65534:noone at all,,,,:/dev/null: +miquels:::::: +:*:::::/etc/NoShell [ All normal users AFTER this line! ] tester:*:299:10:Just a test account:/tmp: miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh このようにユーザ "tester" は存在しますが、シェルが /etc/NoShell になり ます。 miquels は通常のアクセス権を持つことになります。 別法として、 /var/yp/Makefile ファイルを編集し、 NIS が使うパスワード ファイルを別に指定することができます。大きなシステムでは、 NIS のパス ワードファイルとグループファイルは通常 /var/yp/ypfiles に置くことが多 いようです。このようにするとパスワードファイル関連の管理ツールは使えな くなります。つまり passwd, chfn, adduser などに対し、特別なツールが必 要になります。 しかし yppasswd、 ypachsh、 ypchfn は当然動作します。 8.2. サーバプログラム yps NIS サーバ yps の設定は前のセクションを参考にして下さい。大体似ていま すが完全に同じではないので、ypserv の説明を適用する際には注意するよう にして下さい。 yps はもはや誰もサポートしていませんし、いくつかセキュ リティホールも存在しています。使うべきではありません! yps のソフトは以下のサイトにあります。 o o ファイル名は yps-0.21.tar.gz です。 8.3. rpc.ypxfrd プログラム rpc.ypxfrd は非常に大きな NIS マップを NIS マスターから NIS スレーブサ ーバーに転送する際に、転送を高速化するために用いられます。 NIS スレー ブサーバーは、新しいマップがあるというメッセージを受け取ると、そのマッ プを取得するために ypxfr を起動します。 ypxfr は yp_all() 関数を用いて マップの内容をマスターサーバーから読み込もうとします。この情報はデータ ーベースライブラリを通して保存されるため、マップのサイズが非常に大きく なると、このプロセスは数分もかかってしまうことがあります。 rpc.ypxfrd サーバーは、 NIS スレーブサーバーにマスターのマップファイル を単純にコピーさせ、転送プロセスを高速化します。スレーブサーバーがゼロ から自前のマップを生成するのに比べ、これはずっと短時間ですみます。 rpc.ypxfrd は RPC ベースの転送プロトコルを用いるので、新しいマップを生 成する必要はありません。 rpc.ypxfrd は inetd から起動することもできますが、起動には時間がかかる ので、 ypserv と一緒にデーモンとして起動しておくほうがいいでしょう。 rpc.ypxfrd は NIS マスターサーバでだけ起動しておけば OK です。 8.4. rpc.yppasswdd プログラム ユーザがパスワードを変更したときには、 NIS のパスワードデータベース や、それに依存した他の NIS データベースも変更されなければなれません。 これを行なうのが rpc.yppasswdd です。このプログラムはパスワード変更を 取り扱い、 NIS の情報が正しく更新されるようにします。現在 rpc.yppasswdd は ypserv の一部となっています。別パッケージになっている yppasswd-0.9.tar.gz や yppasswd-0.10.tar.gz などは古いので使う必要はあ りませんし、また今後使うべきではありません。 ypserv 1.3.2 の rpc.yppasswdd は shadow を完全にサポートしています。 yppasswd は yp- tools-2.2.tar.gz に入っています。 rpc.yppasswdd を実行するのは NIS マスターサーバのみです。デフォルトで は、ユーザーはフルネームやログインシェルを変更することができないように なっています。これを許可するには、それぞれ -e chfn および -e chsh オプ ションを指定します。 passwd と shadow ファイルが /etc 以外にある場合は、 -D オプションを指 定する必要があります。例えば全てのソースファイルを /etc/yp に置いて、 ユーザにシェルの変更を可能にしたい場合は、 rpc.yppasswdd を以下のパラ メータで実行しなければなりません: rpc.yppasswdd -D /etc/yp -e chsh または rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh でも OK です。 他には特にすることはありません。ただ、 rpc.yppasswdd が /var/yp/Makefile と同じファイルを使っているかどうかは気をつけておいて ください。エラーは syslog を通して記録されます。 9. NIS/NYS インストールのチェック すべてがうまく行ったら、簡単なコマンドを使ってインストールのチェックを 行って下さい。例えばパスワードファイルが NIS/NYS で共有されている場合 は、 % ypcat passwd というコマンドで NIS のパスワードファイルの内容が見られるはずです。ま た、 % ypmatch userid passwd とすれば、指定したユーザのエントリがパスワードファイルから取り出されて 表示されます (userid には適当なユーザのログイン名を入れます)。なお ypcat や ypmatch は、NIS や NYS の配布パッケージに入っています。 ユーザーによるログインができない場合には、以下のプログラムをクライアン トで実行してみて下さい。 ______________________________________________________________________ #include #include #include int main(int argc, char *argv[]) { struct passwd *pwd; if(argc != 2) { fprintf(stderr,"Usage: getwpnam username\n"); exit(1); } pwd=getpwnam(argv[1]); if(pwd != NULL) { printf("name.....: [%s]\n",pwd->pw_name); printf("password.: [%s]\n",pwd->pw_passwd); printf("user id..: [%d]\n", pwd->pw_uid); printf("group id.: [%d]\n",pwd->pw_gid); printf("gecos....: [%s]\n",pwd->pw_gecos); printf("directory: [%s]\n",pwd->pw_dir); printf("shell....: [%s]\n",pwd->pw_shell); } else fprintf(stderr,"User \"%s\" not found!\n",argv[1]); exit(0); } ______________________________________________________________________ このプログラムをユーザ名をパラメータとして実行しますと、そのユーザに対 して getpwnam 関数が返す情報が全て表示されます。これによって、どのエン トリが間違っているかがわかるでしょう。よくある間違いとしては、パスワー ドのフィールドが "*" によって上書きされている、などがあります。 GNU C Library 2.1 (glibc 2.1) には getent というツールがついてきます。 そのようなシステムでは、上記の代わりにこちらを使いましょう。 getent passwd や getent passwd login のように試してみましょう。 10. NIS でよくおこる問題とその解決方法 以下のような問題が多くのユーザから報告されています。 1. バージョン 4.5.19 のライブラリは壊れており NIS は動作しません。 2. ライブラリを 4.5.19 から 4.5.24 にアップグレードすると su コマンド が使えなくなります。この場合は su コマンドを Slackware 1.2.0 から入 手します。ついでに最新のライブラリも導入してしまうと良いでしょう。 3. NIS サーバを再起動させた際、 ypbind が yp_match: clnt_call: RPC: Unable to receive; errno = Connection refused のようなメッセージを表示し、 NIS のデータベースに登録されている人がロ グインできなくなることがあります。 root でログインして ypbind を kill し、 ypbind を起動しなおしてみて下さい。 ypbind 3.3 以降にアップデート しても解決できると思います。 4. libc を 5.4.20 以上の版にアップグレードすると、 YP tools が動作しな くなります。 libc >= 5.4.21 および glibc 2.x には yp-tools 1.2 が必 要です。それ以前の版の libc には yp-clients 2.2 が必要です。 yp- tools 2.x ならすべてのライブラリで動作します。 5. libc 5.4.21-5.4.35 の yp_maplist は壊れています。 yp-tools 1.x を用 いるには 5.4.36 以降が必要です。さもないと ypwhich などの YP プログ ラムは segfault してしまうはずです。 6. libc5 と trad-NIS は shadow パスワードの NIS での配布をサポートして いません。 libc5 + NYS または glibc 2.x を用いる必要があります。 7. ypcat は "shadow" マップを表示しません。これは正しい動作です。 shadow マップの名前は "shadow.byname" ですから。 8. Soralis は必ずしも特権ポートを用いません。従って Soraris のクライア ントがある場合はパスワード mangling を用いてはいけません。 11. よくある質問 (FAQ) あなたが疑問に思っていたことはここまでに大部分が解決されたことと思いま すが、まだ疑問点が残っておられましたら、 comp.os.linux.networking などに質問すると良いと思います。 訳注:日本語のニュースグループは fj.os.linux japan.comp.linux などがあります。 訳者のページ に は、個人的なインストール体験記が書いてあるほか、この文書で紹介されてい るソフトウェア入手先のミラーのうち、国内のものを紹介しています。