UNIX/Linuxの部屋 コマンド:NIS


※空白区切りで AND 検索 (例:「ファイル 削除」)

読み方 NIS (ネットワーク) [えぬ・あい・えす] [にす]

"Network Information Service" の略。最後の S は Service の S であって System の S ではない。昔は YP と言っていた。今も NIS 関連のコマンド名は ypcat・ypmatch などと、`yp' がついている。

用語集 NIS 複数のマシンでユーザ情報を共有する

複数のマシンを LAN に繋いでいる場合、/etc/passwd・/etc/group などのユーザ情報がそれぞれのマシンに分散するのは好ましくない。一つのユーザの情報を書き換えるだけでも、複数のマシンにログインしてファイルを書き換えることになり、めんどくさいからである。

そこで、Sun Microsystems が YP (Yellow Page) という機能を開発した。ネットワーク越しにユーザ情報をやりとりするもので、一度情報を更新すると、他のマシンでも同じ情報が利用できる。その後、YP は NIS という名称に変わったが、依然として yp で始まるコマンド名が使われている。

NIS は、/etc/passwd・/etc/group のユーザ情報や、/etc/protocols・/etc/services などのネットワークに関するファイルを一元管理することができる。具体的には、NIS サーバという中心となる役目のマシンを一つ決めておき、その他のマシン (NIS クライアント) は、ユーザ情報・ネットワーク情報が必要になるたびに NIS サーバに問い合わせることになる。

これにより、
  • NIS サーバでユーザアカウントを作成しておけば、どの NIS クライアントでもログインすることができる。
  • ログインシェル・GECOS フィールドなど、各ユーザ固有の情報を変更すれば、NIS を利用しているマシン全体に反映される。
というように、一元管理ができるわけである。

NIS クライアントでは、/etc/passwd・/etc/group・/etc/protocols・/etc/services などの各ファイルは本来の意味を持たない。ypcat コマンドで見ることができる。NIS を利用して得られる情報の一覧は
% ypcat -x
Use "passwd" for "passwd.byname"
Use "master.passwd" for "master.passwd.byname"
Use "group" for "group.byname"
Use "networks" for "networks.byaddr"
Use "hosts" for "hosts.byaddr"
Use "protocols" for "protocols.bynumber"
Use "services" for "services.byname"
Use "aliases" for "mail.aliases"
Use "ethers" for "ethers.byname"
でわかる。例えば
% ypcat passwd
とすると、「NIS を利用して /etc/passwd に相当する情報を表示する」ことができる。同様に、
  • ypcat group ... /etc/group
  • ypcat networks ... /etc/networks
  • ypcat hosts ... /etc/hosts
  • ypcat protocols ... /etc/protocols
  • ypcat services ... /etc/services
  • ypcat aliases ... /etc/aliases
  • ypcat ethers ... /etc/ethers
というふうに対応している。


頑張って書いたおすすめコンテンツ!