linux下nis的主要功能

以下进行 NIS 从服务器的配置:(以下步骤与主基本一样)
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 �Ch 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" >> /etc/rc.d/rc.local
[root@localhost ~]# echo "NISDOMAIN=crazylinux" >> /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 相同功能。
无论如何,我是不太建议大家使用这些指令去修改数据库的内容啦!比较建议这样做:
n 登入到 NIS Server 主机里面去,进行 useradd 或者是 passwd 修改账号与密码等等的更动;
n 使用 /usr/lib/yp/ypinit -m 重新制作数据库档案!
这样就 OK 啦!比较简单啦我想~至于上面三个指令,请使用 Linux 的好朋友 man 来查看一下吧! ^_^
本文出自 crazylinux工作室 博客,请务必保留此出处 http://crazylinux.blog.51cto.com/259244/162757
本文出自 51CTO.COM技术博客

你可能感兴趣的:(linux,职场,休闲,NIS)