NIS服务器配置
NIS全称Network Information Services,它的最大用途在于向客户端用户提供信息查询,如果举个例子来说明它的用途的话,就是如果在一个公司中有100个人的话,为了对他们进行管理,作为管理员我们需要为他们的每一台机器都设置一个帐号,但是这样显然非常的麻烦,要是再有员工进来的话,还要一个一个的为他们再添加帐号,这样的话只是增加帐号管理员就会崩溃的,所以我们想可不可以对这些帐号进行集中管理,只是在系统管理员的主机上操作一下就可以为他们设置帐号呢,现在我们就可以使用NIS了,NIS有点像windows的域控制,我们可以把系统管理员的主机作为一个NIS服务器,在服务器上设置帐号,但这个帐号可以被远程用户来登录,只需要在系统管理员的主机上验证就可以了。说白了,就是员工(client端)在登录主机的时候,要先到管理员(server端)主机上来查询帐号与密码,帐号密码验证成功就可登录。管理员想要增加帐号的时候,只需要在自己的主机上增加即可。
在通常使用中,小型的公司都是单独使用一个NIS server就可以支撑整个公司的使用,但是如果公司内的人比较多的话或者这台NIS服务器的负载比较大的时候,为了保证NIS服务器的正常运转,我们可能要再架设一个NIS Slave了,NIS服务器的Master/Slave主从架构对保证安全性还是很好的。
现在我们可以通过一个案例来说明一下NIS服务器的架设。
条件:
NIS服务器名称:server-nis
NIS Master ip:192.168.2.10
NIS Client ip :192/168.2.12
1> 首先我们先来看一下需要的软件
yp-tools:它提供NIS相关的查询命令
ypbind:NIS客户端软件
ypserv: NIS服务器设置软件
portmap:RPC软件(NIS是基于RPC的)
2>服务器端的配置
1.安装服务器软件
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@localhost ~]# cd /mnt/cdrom/Server/
[root@localhost Server]# rpm -ivh ypserv-2.19-5.el5.i386.rpm
warning: ypserv-2.19-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ######################### [100%]
1:ypserv ########################### [100%]
2.我们先来介绍几个比较重要的文件
/etc/ypserv.conf: NIS配置文件,用于设置客户端是否可登录的权限
/var/yp/Makefile:建立与数据库有关的操作设置文件
/etc/sysconfig/network:可以在这个文件中指定NIS域名
/usr/lib/yp/ypinit:建立数据库的命令
3.为NIS建立域名
[root@localhost ~]# vim /etc/sysconfig/network 添加如下一行
NISDOMAIN=serve-nis
设置NIS服务器 开机启动
[root@localhost ~]# vim /etc/rc.d/rc.local 添加如下一行
/bin/nisDomainname serve-nis
3.对于配置文件,我们保持默认就可以了。
4.我们可以看一下/var/yp/Makefile文件中的内容,修改要把哪些帐号产生出可供客户端登录的帐号
[root@localhost ~]# vim /var/yp/Makefile
将all: passwd group hosts rpc services netid protocols mail \
修改成为:
all: passwd group hosts \ 只允许普通帐号登录
5.启动服务
[root@localhost ~]# service portmap start
Starting portmap: [ OK ]
[root@localhost ~]# service ypserv restart
Stopping YP server services: [ OK ]
Setting NIS domain name serve-nis: [ OK ]
Starting YP server services: [ OK ]
6.建立NIS帐号数据库
[root@localhost ~]# /usr/lib/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. localhost.localdomain 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 <control D>.
next host to add: localhost.localdomain
next host to add: //按ctrl+d
The current list of NIS servers looks like this:
localhost.localdomain
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/serve-nis/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory `/var/yp/serve-nis'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
gmake[1]: Leaving directory `/var/yp/serve-nis'
localhost.localdomain has been set up as a NIS master server.
Now you can run ypinit -s localhost.localdomain on all slave server
现在可以看到在文件/var/yp下生成了server-nis目录
但是如果我们每在master主机中加入一个帐号都要重新生成一次数据库
如我们建立一个测试帐号:test
[root@localhost ~]# useradd test
[root@localhost ~]# passwd test
Changing password for user test.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
为其添加一个文件
[root@localhost ~]# cd /home/test/
[root@localhost test]# ll
total 0
[root@localhost test]# touch server
这里就需要重新生成一次数据库
[root@localhost ~]# cd /var/yp/
[root@localhost yp]# make
gmake[1]: Entering directory `/var/yp/serve-nis'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
gmake[1]: Leaving directory `/var/yp/serve-nis' 上面的命令就可以重新生成数据库了
3>NIS client端设置
我们在图形界面下进行客户端的设置,首先键入:setup----->Authentication configuration--->
点击”ok”后,服务自己启动。
现在我们就可以登录NIS主服务器上的帐号了,但是在登录之前先查看一下Client端有没有这个帐户,因为client在登录帐号的时候,是先查看本地是否有这个用户,如果有的话,则直接登录,否则发送广播包远程登录NIS服务器上的帐号。
登录
[root@localhost ~]# su - test
su: warning: cannot change directory to /home/test: No such file or directory
-bash-3.2$
登录之后你会发现是这个状态,这是因为本地没有test主目录,但是我们不可能在客户端为了给test一个主目录再建立test这个帐号,所以我们可以利用NFS来共享NIS服务器上的test的主目录,并且实现在client的自动挂载。
在服务器端配置NFS服务器
[root@localhost yp]# vim /etc/exports 添加如下内容
/home/test *(ro,sync)
开启NFS服务
[root@localhost yp]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
在客户端配置autofs自动挂载
先测试挂载目录
[root@localhost ~]# service portmap start
Starting portmap: [ OK ]
[root@localhost ~]# showmount -e 192.168.2.10
Export list for 192.168.2.10:
/home/test *
配置autofs配置文件
[root@localhost ~]# vim /etc/auto.master 添加下面一行
/home /etc/auto.nfs --timeout=60
创建/etc/auto.master并配置
[root@localhost ~]# cp -p /etc/auto.misc /etc/auto.nfs
[root@localhost ~]# vim /etc/auto.nfs
test -ro,soft,intr 192.168.2.10:/home/test
启动autofs服务
[root@localhost home]# service autofs restart
Stopping automount: [ OK ]
Starting automount: [ OK ]
现在我们可以再次切换到test用户,看看结果
[root@localhost ~]# su - test
[test@localhost ~]$ ll
total 0
-rw-r--r-- 1 root root 0 Dec 26 08:20 server
[test@localhost ~]$
测试成功,这样的话,nis客户端就可以正常的使用了