免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1046 | 回复: 0
打印 上一主题 下一主题

Linux下架设NIS服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-03-26 17:41 |只看该作者 |倒序浏览

                Linux下架设NIS服务器
内容:
1. 准备工作
2. NIS 的由来与功能
  2.1 NIS 的主要功能
  2.2 NIS 的运作流程
3. NIS server 端的设定
  3.1 所需要的软件
  3.2 NIS 的软件结构
  3.3 一个实作案例
  3.4 NIS master 的设定与启动
  3.5 NIS slave 的设定与启动 (optional)
  3.6 防火墙设置
4. NIS client 端的设定
  4.1 NIS client 所需软件与软件结构
  4.2 NIS client 的设定与启动
  4.3 NIS client 端的检验: yptest, ypwhich, ypcat
  4.4 使用者参数修改: yppasswd, ypchfn, ypchsh
5. NIS 与 NFS 的设定与群集电脑运用
6. 命令对应资料
7. 重点回顾
8. 参考资料
1、准备工作
  NIS 最大的用途在于提供客户端的使用者相关参数查询,举例来说,使用者的帐号、密码、UID、家目录、shell 等等的,都可以通过 NIS 服务器来查询的。但 NIS 所能提供的也就是这样了,他并没有办法提供使用者家目录的空间,
因此,一般在高效能运算电脑当中,如果想要让所有的机器都拥有相同的帐号密码,通常使用 NIS 提供身份验证,配合 NFS 提供所需要的磁盘空间。 开始前,你最好知道:
  了解网络基础,防火墙与关闭 SELinux 模块等等。
  一定要认识 NFS 服务器;
  需要了解 RPC;
  需要了解使用者帐号相关知识
  建立 NIS 数据库会使用到 make/Makefile 功能
2、NIS 的由来与功能
  在一个大型的网络当中,如果有多部 Linux 主机,万一要每部主机都需要设定相同的帐号与密码时,还真是麻烦。 此时,如果能够有一部主控服务器 (master server) 来管理网络中所有主机的帐号,
当其他的主机有使用者登入的需求时,才到这部主控服务器上面要求相关的帐号、密码等使用者资料, 如此一来,如果想要增加、修改、删除使用者资料,只要到这部主控服务器上面处理即可, 这样就能够降低重复设定使用者帐号的步骤。
  这样的功能有很多的服务器软件可以达成,这里我们要介绍的则是 Network Information Services (NIS server) 这个服务器软件。
  下面就先来谈一谈 NIS 的相关功能。
2.1 NIS 的主要功能
  通常我们都会建议,一部 Linux 主机的功能越简单越好,也就是说,一部 Linux 就专门进行一项服务。这样有许多的好处,这包含功能简单所以系统资源得以完整运用, 并且在发生入侵或者是系统产生状况的时候,也比较容易追查问题所在。因此,一个公司内部常常会有好几部 Linux
主机,有的专门负责 WWW 、有的专门负责 Mail 、有的专门负责 SAMBA 等等的服务。
  不过,这样虽然有分散风险、容易追踪问题的好处,但是,由于是同一个公司内的多部主机,所以事实上所有的 Linux 主机的帐号与密码都是一样的!那如果公司里面有 100 人的话, 我们就需要针对这么多部的主机去设定帐号密码。而且,如果未来还有新进员工,
那么就设定密码就会使系统管理员抓狂。
  这个时候,让我们换一个角度来思考:如果我设计了一部专门管理帐号与密码的主机,而其他的 Linux 主机当有客户端要登入的时候,就必须要到这部管理密码的主机来查寻使用者的帐号与密码, 如此一来,我要管理所有的 Linux 主机的帐号与密码,只要到那部主要主机上面去进行设定即可!
这就是 Network Information Service, NIS 主机的主要功能。
  事实上,Network Information Service 最早应该是称为 Sun Yellow Pages (简称 yp),也就是 Sun 这家公司出的一个名为 Yellow Pages 的服务器软件,请注意, NIS 与 YP 是一模一样的。这个 Yellow
Pages 名字取的真是好!怎么说呢?知道黄页 (Yellow Pages) 是什么吗?就是我们家里的电话簿, 今天如果你要查寻一家厂商的电话号码,通常就是直接去查黄页上面的记录来取得电话号码。而这个 NIS 也一样,当使用者要登入时, Linux 系统就会到 NIS
主机上面去找寻这个使用的帐号与密码信息来加以比对, 以提供使用者登入的验证。
  那么 NIS 主机提供了哪些信息?还记得帐号与密码放置在哪里吗?NIS 就是提供这些资料。 主要有下面这些基本的资料提供给有登入需求的主机:
  /etc/passwd
  提供使用者帐号、UID、GID、家目录所在、Shell 等等
  /etc/group
  提供群组资料以及 GID 的对应,还有该群组的加入人员
  /etc/hosts
  主机名称与IP的对应,常用于 private IP 的主机名称对应
  /etc/services
  每一种服务 (daemons) 所对应的端口 (port number)
  /etc/protocols
  基础的TCP/IP协议,如 TCP, UDP, ICMP等
  /etc/netgroup
  网络群组的定义与使用 (NIS 可能会需要)
  /etc/rpc
  每种 RPC 服务器所对应的程序号码
  /var/yp/ypservers
  NIS 服务器所提供的资料文件
  至少可以提供上述这些功能,当然,你也可以自行定义需要哪些资料文件。
2.2 NIS 的运作流程
  由于 NIS 服务器主要是提供使用者登入的信息给客户端主机来查询用,所以,NIS 服务器所提供的资料当然就需要用到传输与读写比较快速的 "数据库" 文件系统, 而不是传统的纯文字资料。为了要达到这个目的,所以 NIS 服务器就必须要将前一小节提到的那些文件制作成为数据库文件,
然后使用网络通讯协议让客户端主机来查询。至于所使用的通讯协定与 NFS 相同,都使用远程过程调用 (RPC)。
  此外,如果在一个大型的网络里面,所有的 Linux 主机都向同一部 NIS 服务器要求使用者信息时, 这部 NIS 服务器的负载 (loading) 可能会过大。甚至如果考虑到资料使用的风险, 要是这单一的一部 NIS 服务器死机时,那其他的 Linux
主机都不能让users 登入。 所以,在较为大型的企业环境当中, NIS 服务器可以使用 master/slave (主控/次要服务器) 架构。
  Master NIS 服务器提供系统管理者制作的数据库, slave 则取得来自 master 的数据库资料,并借以提供其他客户端的查询。 客户端可以向整个网络要求使用者资料的回应,master 与 slave 皆可回答, 由于 slave 的资料来自于 master
,所以使用者帐号资料本身是同步的。 如此一方面可以分散 NIS 服务器的负载, 而且也可以避免因 NIS 服务器死机而导致的无法登入的风险。
         

      
  图一、NIS 的运作流程
  整个 NIS 的运作就如同上图,首先必须要有 NIS server 的存在,之后才会有 NIS Client 的存在。 那么当使用者有登入的需求时,整个 NIS 的运作程序是:
  关于 NIS Server (master/slave) 的运作程序:
  1 NIS Master 先将本身的帐号密码相关信息制作成为数据库文件;
  2 NIS Master 可以主动的告知 NIS slave server 来更新;
  3 NIS slave 亦可主动的前往 NIS master server 取得更新后的数据库文件;
  4 若有帐号密码的变动时,需要重新制作 database 与重新同步化 master/slave。
  关于当 NIS Client 有任何登入查询的请求时:
 
  NIS client 若有登入请求时,会先查询其本机的 /etc/passwd, /etc/shadow 等文件;
  若在 NIS Client 本机找不到相关的帐号资料,才开始向整个 NIS 网络的主机广播查询;
  每部 NIS server (不论 master/slave) 都可以回应,基本上是『先回应者优先』。
  从上面的流程当中,你会发现 NIS client 还是会先针对本机的帐号资料进行查询, 查不到才到 NIS server 上寻找。因此,如果你的 NIS client 本身就有很多一般使用者的帐号时, 那跟 NIS server 所提供的帐号就可能产生一定程度的差异。
所以,一般来说,在这样的环境下,NIS client 或 NIS slave server 会主动去掉本机本身的一般使用者帐号,仅会保留系统所需要的 root 及系统所需帐号而已。 如此一来,一般使用者才都会经由 NIS master server 所控制。
  根据上面图一的说明,我们的 NIS 环境大致上需要设定的基本有:
  NIS Master server :将文件建置成数据库,并提供 slave server 来更新;
  NIS Slave server :以 Master server 的数据库作为本身的数据库来源;
  NIS client :向 master/server 要求登入者的验证资料。
3、NIS Server 端的设定
  NIS 服务器端主要在于提供数据库给客户端作为验证之用,并且服务器端因为数据库的来源又可分为 master/slave 两大类。下面我们将会介绍这两种服务器的安装方式。
3.1 所需要的软件
  由于 NIS 服务器需要使用 RPC 协定,且 NIS 服务器同时也可以当成客户端, 因此它需要的软件就有下面几个:
  yp-tools :提供 NIS 相关的查找命令功能
  ypbind   :提供 NIS Client 端的设置软件
  ypserv   :提供 NIS Server 端的设置软件
  portmap  :RPC 需要的
  如果你是使用 Red Hat 的系统,例如我们的 RHEL4 的话,那你可以利用『 rpm -qa | grep yp 』 来检查是否有安装上述的软件。一般来说 yp-tools, ypbind 都会主动的安装,不过 ypserv 可能不会安装。 此时你可以使用『 rpm
-ivh ypserv* 』来安装。
3.2 NIS 的软件结构
  在 NIS 服务器上最重要的就是 ypserv 这个软件了,而 ypserv 主要则是提供了下面这些重要资料:
  配置文件方面:
  /etc/ypserv.conf:这是最主要的配置文件, 可以规范 NIS 客户端是否可登入的权限。
  /etc/hosts:非常重要!每一部主机都需要记录才行。
  /etc/netgroup:设定信任的主机与网域;
  /var/yp/Makefile:与建立数据库有关的配置文件;
  /etc/sysconfig/network:可以在这个文件内指定 NIS 的域名 (nisdomainname)。
  服务器提供的主要服务方面:
  /usr/sbin/ypserv:就是 NIS 服务器提供的主要服务;
  /usr/sbin/rpc.ypxfrd:用来作为 master/slave 主机之间传输数据库的服务;
  /usr/sbin/rpc.yppasswdd:提供额外的 NIS 客户端之使用者密码修改服务, 通过这个服务, NIS 客户端可以直接修改在 NIS 服务器上的密码。相关的使用程序则是 yppasswd 命令;
  与数据库有关的指令方面:
  /usr/sbin/yppush:master 主机将数据库直接送至 slave 的命令;
  /usr/lib/yp/ypinit:建立数据库的命令;
  /usr/lib/yp/ypxfr:传送数据库的命令,在该目录下尚有 ypxfr_1perday, ypxfr_1perhour, ypxfr_2perday 等等。
3.3 一个实作案例
  如果您有观察过图一的话,你会发现到我们的 NIS 需要设置 Master/Slave 及 client 等, 这里提供一个案例,里面就包括这三个软件。如果你的网络是比较小的环境, 那下面提供的 NIS slave server 你可以略过,在这里的假设是这样的:
  NIS 的域名为 vbirdnis
  整个内部的信任网段为 192.168.1.0/24
  NIS master server 的 IP 为 192.168.1.2 ,主机名称为 master.vbirdnis
  NIS slave server 的 IP 为 192.168.1.10,主机名称为 slave.vbirdnis
  NIS client 的 IP 为 192.168.1.100,主机名称为 client.vbirdnis
3.4 NIS master 的设置与启动
  NIS 的设置很简单,首先,你必须要在 NIS master 这部服务器上面搞定你的帐号与密码相关资料, 这包括 /etc/passwd, /etc/shadow, /etc/hosts, /etc/group .... 等等,都得要先搞定才行! 等到搞定之后你就可以继续
NIS 服务器的设定了:
  设定 NIS 的域名 (NIS domain name)
  因为所有的 NIS server/client 都需要设定 NIS 域名称。设置的方式很简单, 直接以 nisdomainname 这个命令来设置即可。(其实 nisdomainname 与 ypdomainname 及 domainname
都是一模一样的命令。你只要记住一个命令名称即可。请自行 man domainname )
# nisdomainname [NIS 域名称]
参数:
若没有加上域名称,则会显示出目前的 NIS 域;
# nisdomainname vbirdnis
# nisdomainname
vbirdnis  ,,
主机,使用者帐号,域名
  事实上,如果这个文件是『空白』的,那么代表着『全部的主机、帐号与域名称都接受』的意思,因为我们已经在 /etc/ypserv.conf 里头设置好了关于安全的项目,所以这个文件只要建立即可(缺省是不存在的):
# touch /etc/netgroup
  启动所有相关的服务
  这包括 RPC, ypserv 以及 yppasswdd。不过,如果你的 RPC 本来就已经启动的话,那就不要重新启动 portmap。
# /etc/init.d/portmap start
# /etc/init.d/ypserv start
# /etc/init.d/yppasswdd start
  注意,主要的 NIS 服务是 ypserv ,不过,如果要提供 NIS 客户端的密码修改功能的话, 最好还得要启动 yppasswdd 这个服务。在启动完毕后,我们可以利用 rpcinfo 来检查看看:
# rpcinfo -p localhost
  program vers proto   port
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100004    2   udp    942  ypserv
    100004    1   udp    942  ypserv
    100004    2   tcp    945  ypserv
    100004    1   tcp    945  ypserv
    100009    1   udp    950  yppasswdd
# rpcinfo -u localhost ypserv
  program 100004 version 1 ready and waiting
  program 100004 version 2 ready and waiting
  要出现上述的画面才表示正确的启动了 ypserv。 若需要开机立即启动 ypserv ,请使用 chkconfig 来处理。
  建立数据库
  在完成了上面的所有步骤后,接下来我们得要开始将主机上面的帐号文件转成数据库文件。 转换的动作直接通过 /usr/lib/yp/ypinit 这个命令来处理。整个步骤如下:
# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers.  master.vbirdnis is in the list of NIS server hosts.  Please continue
to add the names for the other hosts, one per line.  When you are done with the
list, type a .
        next host to add:  master.vbirdnis  

  图二、authconfig 的使用说明
  系统原本就会有 MD5 及 Shadow 的加密编码,您只要选择上图的 NIS 项目,然后按下 Next 便进入到如下所示画面:
        

  图三、authconfig 的使用说明(续)
  在你输入了正确的 NIS 域名称 (Domain) 以及正确的主机名称 (就是主控主机) ,并且按下 OK 后,你的 RHEL4 就会自动的帮你启动 portmap 以及 ypbind 这两个程序, 同时还会自动的使用 chkconfig 的功能帮您在开机时自动启动
portmap 及 ypbind 。这样你就启动了 ypbind !很简单吧!
  如果你真的想要手动处理的话,那么你必须要手动的修改下面这些文件:
  /etc/nsswitch.conf (修改许多主机验证功能的顺序)
  /etc/sysconfig/authconfig (RHEL4 的认证机制)
  /etc/pam.d/system-auth (许多登入所需要的 PAM 认证过程)
  /etc/yp.conf (即是 ypbind 的配置文件)
  
  事实上, authconfig 命令也是在处理这些文件。 我们就来谈一谈这个小细节。
  1. /etc/nsswitch.conf
# vi /etc/nsswitch.conf
# 这个文件的内容有相当多,不过如果你只想要进行登入验证,可以这样:
passwd:     files nis
shadow:     files nis
group:      files nis
hosts:      files nis dns
# 只要加入 nis 即可!这几个设置的意义是:
# 1. passwd: 就是使用者相关信息查找,分别为 /etc/passwd, nis
# 2. shadow: 就是使用者密码的查找, /etc/shadow, nis
# 3. group:  就是使用者的群组信息查找, /etc/group, nis
# 4. hosts:  就是主机名称与IP对应的查找,/etc/hosts, nis 及 /etc/resolv.conf
  2. /etc/sysconfig/authconfig
# vi /etc/sysconfig/authconfig
USENIS=no
# 这个文件的内容很好修改!只要将上面 NIS 部分改成 yes 即可:
USENIS=yes
  3. /etc/pam.d/system-auth
# vi /etc/pam.d/system-auth
# 这个部分也很重要!且容易忘记!修改 PAM 的配置文件找到如下一行:
password    sufficient    /lib/security/$ISA/pam_unix.so nullok
use_authtok md5 shadow
# 上面可是同一行,将它改成:
password    sufficient    /lib/security/$ISA/pam_unix.so nullok
use_authtok md5 shadow nis
  4. /etc/yp.conf
# vi /etc/yp.conf
# 这个是 ypbind 的主要配置文件,主要语法是:
# domain [NIS域名] server [主机名称]
# 或者是通过广播,适合用于大网域有多部 NIS 服务器时:
# domain [NIS域名] broadcast
domain vbirdnis broadcast
  这样设置完成后,再启动 ypbind 即可:
# /etc/init.d/portmap start
# /etc/init.d/ypbind start
  你可以手动处理,也可以直接使用 authconfig。 这里建议您可以直接使用 authconfig 比较容易些。
  另外,那些手动处理的文件当中, /etc/nsswitch.conf 是很重要的,因为它规范了 Linux 本机要使用某些服务时,例如帐号/密码的资料、 主机名称的对应资料、port number 对应服务名称的资料等等,这些资料的搜索顺序!更多的资料请自行进入该文件内查阅。
  至于其他两个配置文件, /etc/sysconfig/authconfig, /etc/pam.d/system-auth 则是与使用者帐号的验证有关, 这是 RHEL (Red Hat 系统) 所惯用的配置文件,如果没有修改设置的话,那么顺利启动 ypbind
也是无法登入的。 这样说,可以了解吧!
4.3 NIS client 端的检验: yptest, ypwhich, ypcat
  如何确定 NIS client 已经连上 NIS server 呢?你可以利用 id 这个指令直接检查 NIS server 有的,但是 NIS client 没有的帐号,如果有出现该帐号的相关 UID/GID 信息时,那表示有连接上。 除此之外,我们还可以通过 NIS
提供的相关检验功能来检查。下面分别来看一下:
  利用 yptest 检验数据库之测试:
  直接输入 yptest 即可检查相关的测试资料,如下所示:
# yptest
Test 1: domainname
Configured domainname is "vbirdnis"
Test 2: ypbind
Used NIS server: master.vbirdnis
Test 3: yp_match
WARNING: No such key in map (Map passwd.byname, key nobody)
....中间省略....
Test 8: yp_maplist hosts.byname group.byname passwd.byuid group.bygid
passwd.byname hosts.byaddr ....中间省略....
Test 9: yp_all
....中间省略....
1 tests failed
  从这个测试中我们可以发现一些错误,重点在第九个步骤 yp_all 必须要有列出您 NIS server 上面的所有帐号信息,如果有出现帐号相关信息的话,那么应该就算验证成功了!比较有问题的是第三步骤, 他会出现在 passwd.byname 当中找不到 nobody
的字样。这是因为早期的 nobody 之 UID 都设定在 65534 ,但 RHEL4 则将 nobody 设定为系统帐号的 99 ,所以不会被记录, 也就出现这一个警告。不过,这个错误是可忽略的。
  利用 ypwhich 检验数据库数量
  单纯使用 ypwhich 的时候显示的是『NIS Client 的 domain』名称,而当加入 -x 这个参数时, 则是显示『NIS Client 与 Server 之间沟通的数据库有哪些?』你可以这样测试:
# ypwhich -x
Use "hosts"     for map "hosts.byname"
Use "group"     for map "group.byname"
Use "passwd"    for map "passwd.byname"
....以下省略....
  由上面我们可以很清楚的就看到相关的文件,这些数据库文件则是放置在我的 NIS Server 的 /var/yp/vbirdnis/* 里面。
  利用 ypcat 读取数据库内容
  除了 yptest 之外,你还可以直接利用 ypcat 读取数据库的内容,一般作法是:
# ypcat [-h nisserver] [数据库名称]
参数:
-h nisserver :如果有设定的话,指向某一部特定的 NIS 服务器,
               如果没有指定的话,就以 ypbind 之设定为主;
数据库名称:亦即在 /var/yp/vbirdnis/ 内的文件名。例如 passwd.byname
  范例:读出 passwd.byname 的数据库内容
# ypcat passwd.byname
  这三个命令在进行 NIS Client 端的检验时,是相当有用的。尤其是刚架设好 NIS Client 时,一定要使用 yptest 去检查看看有没有设置错误。根据屏幕显示的信息去一个一个修改错误才行。
4.4 使用者参数修改: yppasswd, ypchfn, ypchsh
  好了,完成了上述的设置后,你的 NIS server/client 的帐号已经同步。不过,还有个挺大的问题,那就是.... 使用者如何在 NIS client 修改他自己的登入参数,例如密码、shell 等等? 因为 NIS client
是借由数据库来取得使用者的帐号密码,那如何在 NIS 客户端处理帐号密码的修改?
  这也是为何我们需要在 NIS server 启动 yppasswdd 这个服务的主要目的。 因为 yppasswdd 可以接收 NIS client 端传来的密码修改,借此而处理 NIS server 的 /etc/passwd, /etc/shadow , 然后
yppasswdd 还能够重建密码数据库,让 NIS server 同步更新数据库。
  那该如何下达命令呢?通过 yppasswd, ypchsh, ypchfn 来处理即可。这三个命令的对应是:
  yppasswd :与 passwd 命令相同功能;
  ypchfn :与 chfn 相同功能;
  ypchsh :与 chsh 相同功能。
  因为功能相当,所以这里仅说明一下 yppasswd 而已。假设你已经登入 NIS client 那台主机, 并且是以 nistest 这个使用者登入的,记住,这个使用者相关资料仅在 NIS server 上。 接下来,这个使用者可以下达 yppasswd ,如下所示:
$ yppasswd
Changing NIS account information for nistest on master.vbirdnis.
Please enter old password:  <==这里输入旧密码
Changing NIS password for nistest on master.vbirdnis.
Please enter new password:  <==这里输入新密码
Please retype new password: <==再输入一遍
The NIS password has been changed on master.vbirdnis.
  这样就更新了 NIS server 上面的 /etc/shadow 以及 /var/yp/vbirdnis/passwd.by* 的数据库, 很简单,一下子就同步化了。不过,如果要让使用者使用 yppasswd 的话,他可能不太能适应, 不要紧,你可以通过修改 alias
或者是置换掉 /usr/bin/passwd 这个程序即可!
5、NIS 与 NFS 的设定与群集电脑运用
  不知道您有没有发现一件事情,那就是:我们的 NIS Server 设定的使用者家目录是在 /home 下面,例如 nistest 这个人的家目录在 /home/nistest (这个目录在 master.vbirdnis 这部主机上面才有)。问题是,当我们登入 NIS
Client 主机时,那么我们取得的家目录资料还是在 /home/nistest ,不过事实上 NIS Client 主机并没有 /home/test 这个目录,也就是说:
  nistest 这个使用者是在 NIS server 上面建立的,所以有 /home/nistest 这个目录;
  在 NIS Client 上面没有真正的 nistest 这个帐号,因为他是由 NIS server 上面取得的,所以自然也就没有 /home/nistest 这个目录在 NIS client 上面。
  这样会造成什么问题呢?就是你的 nistest 这个使用者,登入 NIS client 的时候,『会找不到自己的家目录』! 真是糟糕~而且,因为我们的 NIS client 可能有很多台,要是每次登入 NIS Clients 主机的时候, 所拥有的家目录都是个别 NIS
client 上面的目录,那么就没有达到 NIS 的功能。所以, 如果你需要『同一个帐号登入的每个 NIS Client 所拥有的家目录都是相同的』 的一个情况,就可以使用 NFS 来加以设定。详细的 NFS 设置我们之前已经提过了, 这里不在赘言,单纯谈一下简单的设置技巧:
  在 NIS Server 上面开放 /home 这个目录出来;
  在 NIS Client 上面, mount NIS 主机的 /home 到自己的 /home 里面去!
  如此一来,不论登入哪一台 NIS Server 或 client ,使用者都是进入到 NIS Server 的 /home 里面的家目录。
  事实上,使用者的资料除了 /home 之外,像 /var/spool/mail 以及 /var/spool/cron 也都是可能会有资料存放的目录,你的 NFS 主机应该也要提供这两个目录才好。 设定的方法也不难,我们就简单的谈一谈吧!
  1. 设置 NIS server 主机的 NFS 开放目录:
# vi /etc/exports
/home  192.168.1.0/24(rw,async)
# exportfs -rv
exporting 192.168.1.0/24:/home
# /etc/init.d/nfs start
# chkconfig --level 35 nfs on
  2. 设置 NIS Client 的 mount 资料
# mount -t nfs -o bg,soft 192.168.1.2:/home /home
# 如果这个命令没有问题,可以将他加入 /etc/rc.d/rc.local 中。
  这样一来,您的 NIS Clients 就具有和 NIS Server 主机一模一样的家目录。现在您可以立刻登入试试。
  事实上,现阶段由于个人电脑的相关设备不但便宜,而且运算效能并不比一般大型电脑慢, 因此很多人就在想:『那我可否将许多个人电脑通过网络串接起来,让好几台个人电脑同步运作一个程序, 那么该程序就能够在很短的时间内运算出结果』呵呵!这就是所谓的群集式个人电脑 (PC
cluster) 。
  要实作 PC cluster 需要很多软件的配合,操作系统也是一个很重要的参数。目前较常使用的当然就是 Linux 。 不过我们知道 Linux 系统的运作需要用到使用者的相关参数,例如 UID, GID 等等,所以, 在 PC cluster 当中的每一台 Linux
的帐号密码以及『文件系统 (filesystem) 』都需要相同才行。 为何档案系统需要相同呢?因为你得要让每部主机都使用到相同的一个程序吧?所以, 这就需要 NIS 与 NFS 的同步配合。
  由于『预测』这个东西越来越重要,比如说气象预报、空气品质预报等等, 而预测需要一个很庞大的模式来进行模拟的工作,这么庞大的模拟工作需要大量的运算, 在学校单位要买一部很贵的大型主机实在很不容易!不过,如果能够串接十部双核心的个人电脑的话, 那么可能只需要不到 20
万便能够组成相当于具有 20 颗 CPU 的大型主机的运算能力了! 所以说,在未来 PC cluster 是一个可以发展的课题。
6、命令对应资料
  前面总共讲到 NIS master server, NIS slave server, NIS client 这三个软件, 偏偏每个软件所需要启动的服务以及可使用的命令都不相同, 所以这里帮大家整理一下几个常见的指令:
  
  NIS Master
  所需要启动的服务   ypserv
  使用者能够修改密码  yppasswdd
  数据库传输服务    ypxfrd、yppush
  数据库测试读取
  数据库的建立     ypinit -m
  NIS slave
  所需要启动的服务   ypserv、ypbind
  使用者能够修改密码  
  数据库传输服务    ypxfr
  数据库测试读取    yptest、ypwhich、ypcat
  数据库的建立     ypinit -s server
  NIS client
  所需要启动的服务   ypbind
  使用者能够修改密码  yppasswd、ypchfn、ypchsn
  数据库传输服务    
  数据库测试读取    yptest、ypwhich、ypcat
  数据库的建立     
7、重点回顾
  Network Information Service (NIS) 也可以称为 Sun Yellow Pages (yp),主要是负责在网域中帮助 NIS Client 端查寻帐号与密码以及其他相关网络参数的服务;
 
  NIS server 其实就是提供本身的 /etc/passwd, /etc/shadow, /etc/group, /etc/hosts 等帐号密码资料,以及相关的网络参数等,以提供网域中 NIS Client 的搜索之用;
  NIS 为 server/client 架构,当 NIS client 有帐号登入需求时,该主机会 (1)先找自己的 /etc/passwd, (2)再前往 NIS server 搜索相关帐号资料。
  NIS 使用的软件就是 yp 这个软件,主要分为两部份, ypserv 用在 NIS Server,至于 ypbind 与 yp-tools 则用在 NIS Client 上面。
  为加快 NIS 查询的速度,因此 NIS server 会将本机的帐号文件制成传输较快的数据库文件, 并放置于 /var/yp/(nisdomainname)/ 目录当中;
  不论是 NIS 或者是 NFS 都是借由 RPC Server 所启用的,因此都可以使用 rpcinfo 来查寻 NIS 是否已经启动,以及该 daemon 是否已经向 portmapper (RPC server) 注册。
  在 NIS Server 的设置中,最重要的一个步骤就是将帐号、密码、网络参数等 ASCII 格式文件转成数据库文件 (database file),以提供 NIS client 的查找。而启动 ASCII 转成 database 的程序可以使用
/usr/lib/yp/ypinit -m 或者到 /var/yp 底下执行 make 均可。
  NIS client 端的设置中,最重要的为 /etc/nsswitch.conf 及 /etc/sysconfig/authconfig 里面的设置,另外, RHEL4 的 /etc/pam.d/system-auth 也很重要;
  由于 NIS 通常使用于内部网域中,因此 /etc/hosts 这个档案的设定相当重要
  在 NIS master/slave server 中,建立数据库的方法为 ypinit -m 及 ypinit -s;
  在 NIS master/slave server 中,可以借由 ypxfrd/ypxfr 以及 yppush 来进行主动的更新数据库;
  若想让使用者在任一部 NIS 管辖的主机登入都可以使用同一份家目录,则需开启 NFS 提供 /home 给所有的主机挂载使用;
8、参考资料
  Study Area 之 NIS 服务器架设:http://www.study-area.org/linux/servers/linux_nfs.htm
  NIS 官方网站:http://www.linux-nis.org/
  NIS HOW-TO:http://www.linux-nis.org/nis-howto/HOWTO/index.html
  NIS 服务器:http://linux.vbird.org/linux_server/0430nis.php
Generated by Bo-blog 2.0.3 sp1
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/29238/showart_265224.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP