以下进行 NIS 从服务器的配置:(以下步骤与主基本一样) <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1 .检查服务器是否安装了下列包: portmap ypserv ypbind yp-tools

2 .建立 NIS 的域名

3. 设置 ypserv 服务的配置文件

[root@crazylinux /]# vi /etc/ypserv.conf 在最后添加

127.0.0.0/255.0.0.0   :  *  :  *  :  none
100.0.0.0/255.0.0.0 :  *  :  *  :  none
*                          :  *  :  *  :  deny

[root@localhost ~]# cat /var/yp/securenets 需要自己建立

host 127.0.0.1

255.0.0.0 100.0.0.0

4 .设置 /etc/hosts 与建立可信任群组 /etc/netgroup

[root@crazylinux /]#vi /etc/hosts

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

100.0.0.1 master.crazylinux

100.0.0.2 slave.crazylinux

100.0.0.3 client.crazylinux

[root@crazylinux /]# touch /etc/netgroup

5 .启动服务并建立数据库

[root@crazylinux /]#service portmap restart

[root@crazylinux /]# service ypserv start

[root@crazylinux /]#/usr/lib/yp/ypinit -s master.crazylinux

[root@crazylinux /]# ypcat -h localhost passwd.byname 检测是否成功

但是主服务器随时可能回修改帐号密码,那从服务器怎么设置呢?

[root@crazylinux /]#vi /etc/crontab 在最后添加

20 * * * * root /usr/lib/yp/ypxfr_1perhour

40 6 * * * root /usr/lib/yp/ypxfr_2perday

55 6,18 * * * root /usr/lib/yp/ypxfr_2perday

注:实际操作可能有问题,解决办法以 /usr/lib/yp/ypxfr_1perhour 为例

[root@crazylinux /]# vi /usr/lib/yp/ypxfr_1perhour

找到这一行

$YPBINDIR/ypxfr $map 修改成

$YPBINDIR/ypxfr $map –h master.crazylinux

[root@crazylinux /]#service ypbind restart

以下进行客户端上的配置:

1 .确认安装以下包: ypbind yp-tools 默认安装了的

[root@localhost ~]# yum install portmap ypbind yp-tools

[root@localhost ~]# rpm -qa | grep ^yp

ypbind-1.19-11.el5

yp-tools-2.9-0.1

[root@localhost ~]# rpm -qa | grep portmap

portmap-4.0-65.2.2.1

2 .建立 NIS 的域名

[root@localhost ~]# nisdomainname crazylinux

[root@localhost ~]# echo "/bin/nisdomainname crazylinux" &gt;&gt; /etc/rc.d/rc.local

[root@localhost ~]# echo "NISDOMAIN=crazylinux" &gt;&gt; /etc/sysconfig/network

/bin/nisdomainname crazylinux 添加这行使之开机运行

修改 /etc/sysconfig/network 文件,增加此行: NISDOMAIN=crazylinux 使之在启动 nis 服务自动设置 nis

3 .设置 /etc/hosts 与建立可信任群组 /etc/netgroup

[root@crazylinux /]#vi /etc/hosts

# that require network functionality will fail.

127.0.0.1 localhost.localdomain localhost

100.0.0.1 master.crazylinux

100.0.0.2 slave.crazylinux

100.0.0.3 client.crazylinux

[root@crazylinux /]# touch /etc/netgroup

4 .设置 nsswitch.conf (主机验证功能的顺序)

[root@crazylinux /]# vi /etc/nsswitch.conf

# 找到相关的参数,并改成底下这样:
passwd:     files nis nisplus
shadow:     files nis nisplus

group:      files nis nisplus
hosts:      files nis dns
这个档案设定一些信息的查寻程序! files 指的是本机的相关档案, 至于 nis 则是透过 NIS 来进行查寻,至于 nisplus 则是 NIS+ 这是比较新   版的 NIS 啦!不过,官方网站上面说,目前这个发展的计划已经暂停了! 1. passwd: 就是使用者相关信息查寻,分别为 /etc/passwd, nis nisplus 
2. shadow:
就是使用者密码的查寻, /etc/shadow, nis nisplus 
3. group: 
就是使用者的群组信息查寻, /etc/group, nis nisplus 
4. hosts: 
就是主机名称与 IP 对应的查寻, /etc/hosts, nis /etc/resolv.conf

5 .设置 /etc/sysconfig/authconfig redhat 认证机制)

[root@crazylinux /]# vi /etc/sysconfig/authconfig

USENIS=no 改成 yes

6 .设置 /etc/yp.conf

[root@localhost ~]# cat /etc/yp.conf

domain crazylinux server master.crazylinux 把第 4 # 去掉修改成这样 还可以设置成 broadcast 广播

domain crazylinux server slave.crazylinux

7 .启动 ypbind 服务程序

[root@localhost ~]# service portmap status

portmap (pid 1683) is running...

[root@localhost ~]# service ypbind start

Binding to the NIS domain: [ OK ]

Listening for an NIS domain server..

在这里就可以用服务器上面的 user01 帐号在客户机上面登陆了,但是会出现 -bash-3.00$ (因为 user01 没有主目录,可以用之前学习的 nfs 把服务器上面的 /home 目录共享出来)

NIS 服务器中输出 NFS 共享目录

nis 服务器上

[root@localhost ~]# vi /etc/exports 添加

/home 100.0.0.0/8(rw,async,np_root_squash)

[root@localhost ~]#service nfs start

NIS 客户机上

[root@localhost ~]#vi /etc/fstab

master.crazylinux:/home/ /home nfs defaults 0 0

现在在客户机中用服务器里面的帐号登陆 嘿嘿 OK

  NIC Client 端检验 NIS 设定: yptest, ypwhich, ypcat
设定好了 NIS Client 之后,先以 netstat rpcinfo 检验是否成功的启动后,接下来就要测试到底我们的 NIS Client NIS Server 之间沟通了!此时就需要使用到 NIS 提供的 yp-tools 这个套件,里面的几个小小的执行程序来动作了:

o yptest :主要在测试 yp 的设定内容、数据库内容等等所有 NIS 相关的资料测试;

o ypwhich :主要在测试 NIS Client Server 之间沟通的数据库 (database) 到底是哪几个档案;

o ypcat  :主要在取得 NIS Server 上面的使用者密码信息!

分别谈一谈每个程序的用途与说明吧!

yptest

[root@client root]# yptest
Test 1: domainname
Configured domainname is "cluster"

Test 2: ypbind
Used NIS server: server.cluster
....
Test 8: yp_maplist
rpc.bynumber
rpc.byname
hosts.byaddr
hosts.byname
group.byname
passwd.byname
ypservers
passwd.byuid

Test 9: yp_all
test test:dkoUW2XHV30sEV5gLM4NapyuhBcpVs.:500:500::/home/test:/bin/bash

看到了吗?会有很多的资料一项一项的去测试,测试的结果都会显示在屏幕上面,最好都没有问题之后再开始 NIS Client 的服务吧!
ypwhich

[root@client root]# ypwhich
server.cluster
[root@clent root]# ypwhich -x
单纯使用 ypwhich 的时候显示的是『 NIS Client domain 』名称,而当加入 -x 这个参数时,则是显示『 NIS Client Server 之间沟通的数据库有哪些?』由上面我们可以很清楚的就看到相关的档案啦!这些数据库档案则是放置在我的 NIS Server /var/yp/cluster/* 里面啰!

ypcat

[root@client root]# ypcat -x
#
主要的功能就是『列出数据库』啰!与 ypwhich -x 相同功能!
#
所以我们有 ethers, aliases......passwd 等数据库名称与文件名!
[root@client root]# ypcat [
数据库名称或功能 ]
#
这个指令可以用来取得 NIS Server 上面各个数据库的内容!
#
举例来说,我们想要知道 passwd ( 密码数据 ) 的所有使用者内容,就需要:
[root@client root]# ypcat passwd  (
ypcat passwd.byname )
test:dkoUW2XHV30sEV5gLM4NapyuhBcpVs.:500:500::/home/test:/bin/bash
#
如果是想要知道 hosts 的内容 (NIS Server 主机上面 /etc/hosts 的内容 ) [root@client root]# ypcat hosts
127.0.0.1       localhost       localhost.localdomain
192.168.10.30   server.cluster
#
反正就是加上数据库,你就可以取得 NIS server 主机上面的数据库内容啦!

这三个指令在进行 NIS Client 端的检验时,是相当有用的喔!不要忽略了他的存在啊!尤其是刚架设好 NIS Client 时,一定要使用 yptest 去检查看看有没有设定错误喔!根据屏幕显示的讯息去一个一个校正错误才行啊!

修改使用者密码 ( 需要有 root 身份 ) yppasswd, ypchfn, ypchsh
好了,既然 NIS Client 已经可以正式的来 run 了,那么还可能有什么大问题呢!?最大的问题在于 .... 我能不能在 NIS Client 端修改各个账号的密码呢?答案是『能!』但是不怎么方便~因为,我们要修改的是 NIS Server 端的数据库喔!也就是说,我们在 NIS Client 端登入之后,要修改自己这个账号的密码,其实改到的是 NIS Server 的数据库密码啊!而要修改数据库密码时,需要使用 root 的身份,所以一定需要 root 的密码~如此一来,实在是不太方便~如果真的要修改的话,那么可以使用底下三个小指令来进行修改,不过,不怎么建议这样做就是了!

o yppasswd :与 passwd 指令相同功能;

o ypchfn   :与 chfn 相同功能;

o ypchsh   :与 chsh 相同功能。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> 无论如何,我是不太建议大家使用这些指令去修改数据库的内容啦!比较建议这样做:

n 登入到 NIS Server 主机里面去,进行 useradd 或者是 passwd 修改账号与密码等等的更动;

n 使用 /usr/lib/yp/ypinit -m 重新制作数据库档案!

这样就 OK 啦!比较简单啦我想~至于上面三个指令,请使用 Linux 的好朋友 man 来查看一下吧! ^_^

本文出自 crazylinux工作室 博客,请务必保留此出处 http://crazylinux.blog.51cto.com/259244/162757