建立这两个档案(如果它们不存在的话) touch /etc/gshadow /etc/netgroup
设定 NIS 的domain name /bin/nisdomainname chen
最好起一个有别於目前 domain 的名字这主要是出於安全考量。如果以後测试成功的话您可以将这行加进 /etc/rc.d/rc.local 里面同时在 /etc/sysconfig/network 档案里面修改这行 NISDOMAIN=chen
然後初始设定 NIS 服务 /usr/lib/yp/ypinit -m
记住要用 Ctrl + D 来结束不是用 Ctrl + C 哦切记切记
留意一下有否错误有则根据信息做适当修改无则继续。例如如果它回应说 "No rule to mak target xxxxxx, needed by yyyyyyyy."通常是在 /etc 下面找不到档案而已用 touch /etc/xxxxxxx 就可以解决之。
重新启动 ypserver 和 yppasswdd /etc/rc.d/init.d/ypserv restart
/etc/rc.d/init.d/yppasswdd restart
然後是设定 NIS Client 。这里是在 redhat62.siyongc.domain (192.168.0.22) 这台机器上面设定
执行 netconf 然後选择 ‘Network Information System (NIS) 再按 Enter进入後设定好 NIS domain(如chen要和 server 那端一致)和NIS server(如redhat52.siyongc.domain要确定该 server 在 /etc/hosts 里面指定正确)。如果您的系统没有 netconf 也不要紧可以自己修改後面提到的档案(如 /etc/yp.conf 和 /etc/sysconfig/network)。
接着执行 /bin/nisdomainname chen
然後修改 /etc/yp.conf加进这行 domain chen
ypserver redhat52.siyongc.domain
然後执行 setup 选择‘System Services’确定 [*]ypbind 被选择了。
修改 /etc/passwd在末尾加入 +
然後启动 ypbind: ypbind
(或者/etc/rc.d/init.d/ypbind restart)
测试 NIS
在客户端上面以 root 身份登录之後请输入 ypcat passwd
看看 server 端的帐号是否被列出来了。
您也可以执行 getent passwd netman
这里的‘netman’是在 NIS 伺服器上面的一个使用者帐号名称请改成您欲查询的帐号。这个命令的作用是让我们确定该帐号出现在 NIS 登录之中。如果您看不到任何信息回应那麽好可能上面的步骤(包括伺服器和客户端)还没正确完成您则需要找出原因所在。
如果您能得到信息回应例如 netman:x:1001:1001::/home/netman:/bin/bash
那是好消息否则您得从头进行 debug 方好继续。
然後输入 yppasswd netman
Please enter root passwd:
Please enter new passwd:
Please retype password:
(#注意: 最後两行是设定 netman 的 NIS password。最好和原来的密码一致因为原来的密码也会被更改为 nis 的密码。)
其实上面这步不是必须的如果您能够从另外的机器用 NIS帐号登录就可以略过此步骤。
接着请在本地主机上面建立起该使用者的家目录 mkdir /home/netman
chown netman:netman /home/netman
当然了您也可以设定 Linux 在开机的时候通过 NFS 挂载到使用者原本的家目录(tips修改 /etc/fstab)。但如何做您自己去尝试吧这里暂时卖个关子。
如果该使用者需要使用到本机上面的邮件系统也请为之建立信箱 touch /var/spool/mail/netman
chown netman:mail /var/spool/mail/netman
chmod 660 /var/spool/mail/netman
这样您就可以使用 NIS 登录了。
当您有新的使用者增加之後欲加入 NIS 中的话您要先 cd /var/yp 然後执行 make 来更新 nis 资料。如果登录失败重新启动 yppasswdd 服务然後用 yppasswd 来设定他/她的 NIS 密码但要注意一点原使用者帐号必须已经设定过密码管此时可以取而代之为新的密码。然而有趣的是之後您再於原来主机上更改原帐号的密码却不会影响 NIS 的哦。
如果还有问题您要检查一下 server 端的 ypserv 和 yppasswdd以及 client 端的 ypbind 是否被启动成功(tips执行rpcinfo -p尤其注意 yppasswdd)。其中portmap 是一个很重要的服务(有些系统会显示为 rpcbind)在您执行 ypserv 和 yppasswdd 之前要确定它已经被启动了。如果您需要重启 portmap 要确定所有基於它的服务也要重新启动。
同时留意一下 client 和 server 的 NIS domain name 是否一致。必要时您或许要执行/usr/lib/yp/ypinit -m重新建立 ypserv 资料但这样您就需要重新执行 yppasswd 来设定使用者的 NIS 密码了。
设定 NIS在 server 端牵涉的档案比较多诸如 rpcportmapypnsswitch等等。您可以看一下关於 NIS 的HOWTO 文章或相关的 manuals。