NISクライアントの設定

続いて、アカウントの管理がめんどくさいので、NISを入れました。実はサーバは2ヶ月くらい前に設定したので、すでに忘れました。で、とりあえずクライアントの設定。
http://www.server-world.info/query?os=Ubuntu_13.04&p=nis&f=2
ここのページそのままです。たしか、サーバもここを見たような・・・
もう少し書きますと、まずaptitudeが無いため、インストール。

$ sudo apt-get install aptitude

その後、

$ sudo apttitude -y install nis

とすると、ドメイン名を聞いてきます。クライアントなので、当然決まっていると思いますから、ドメイン名を入力して、OK。次に、/etc/yp.confを編集します。最後の行に

domain ドメイン名 server FQDN

と記載。具体的に書くと、NISドメインを「testlab.net」として、サーバの名前を「server」とすると、FQDNは「server.testlab.net」となるので、

domain testlab.net server server.testlab.net

となります。つぎに、/etc/nsswitch.confを編集します。

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat nis
group:          compat nis
shadow:         compat nis

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 nis
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

赤字の部分を追加します。追加したら、再起動して、クライアントにユーザーIDの無いユーザーでログインします。ログインが成功すれば、OKです。確認として、

$ ypwhich

とか

$ ypcat hosts

とか

$ ypcat passwd

などでNISユーザやクライアントマシンが確認できます。
もしもうまくログインできない場合、サーバの/etc/ypserv.securenetsが怪しいかもしれません。IPのマスクを通常より絞って設定する場合、計算間違いするとログインできません。
1つ嵌ったこととして、クライアントにNISサーバと同じユーザーがいる場合、そのユーザーはクライアントの設定が優先されるみたいです。(たとえば、ホームディレクトリが/home1/testuserになって欲しいのに、/home/testuserになってしまうとか。)恐らく、/etc/nsswhich.confの追加した「nis」を、それぞれの項目の先頭に書けばいいと思いますが、ログインできなくなってもめんどくさいので、クライアントの/etc/passwdを編集して、/home/testuserから/home1/testuserに書き換えました。(てきとーです)