注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小楼一夜听风雨

计算机知识、分子模拟、Linux学习,与您共分享!

 
 
 

日志

 
 

NIS简介  

2010-08-12 10:27:40|  分类: Linux学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

  NIS(网络信息服务)也称YP(Yellow Pages)协议,是一个提供目录服务的RPC(远程过程调用)应用服务。通过它,就可以在网络上共享一个集中式的口令文件,从而大大简化客户端用户对帐户和口令的维护工作。yp-tools/ypbind,ypserv三个软件包,用来安装NIS服务器,安裝linux時可以選擇安裝。
  配置NIS服务器
  NIS服务器必需两个软件包,ypserv包及yptools包。系统有了它们,就可以开始配置NIS服务器了。
  在配置服务器软件之前,须确定是否要创建一些从服务器。如果要创建,需要知道它们的主机名。(主从服务器的概念与DNS类似)除确定NIS服务器的名字之外,还需要确定一个NIS域名。该域名不是DNS域名。这个域名必须在/etc/hosts文件中。
  开始配置主NIS服务器(若要配置从服务器请参照有关文档)
  首先,需要设置域名,通过命令domainname来完成。
  #domainname ll
  修改启动配置脚本/etc/sysconfig/network
  加入NIS_DOMAIN=ll
  编辑/var/yp/Makefile文件,可以保持不變,默認shadow支持開啓。
  初始化NIS数据库
  #/usr/lib/yp/ypinit -m
  键入CTRL+D即可。(提示键入从服务器)此时,系统会在/var/yp/目录下生成一个ll子目录。里面包含许多映像文件。(passwd.byname、passwd.byuid、group.byname 、group.bygid等等)
  然后运行服务程序:
  #/etc/rc.d/init.d/ypserv start
  #/etc/rc.d/init.d/yppasswdd start
  配置NIS客户机
  必需ypbind软件包。保证系统有此软件包。
  首先编辑/etc/yp.conf文件
  加入:domain ll
  ypserver ll然后在/etc/hosts文件中加入ll对应的ip地址。
  修改/etc/sysconfig/network文件,
  加入NISDOMAIN=ll
  最后修改/etc/nsswitch.conf文件,
  compat/hesiod關閉,
  其餘相應選項打開,另外安全設置中,把允許訪問server的client ip寫在前面,最後一行* * * deny即可。设置文件读取的顺序中,files指本地文件,nisplus指nis+,nis指nis服务器,dns指dns服务器。
  最后启动NIS 客户机程序:
  #/etc/rc.d/init.d/ypbind start
  你可以测试一下是否成功
  #/ypcat passwd
  如果显示NIS服务器的passwd文件的一部分(普通用户部分),则成功。你可以用这些用户在你的客户机上登录了。见下图:
  passwd 画面
  不管是NIS服务器还是NIS客户机,如想要机器启动时自动执行服务,可以在setup程序中设定。
  解决问题
  如果NIS软件不正常工作,则可以检查如下几项内容:
  确认进程正在进行。使用ps auxw命令列出所有正在运行的进程,确认该进程正在运行。
  检查系统日志(/var/log)文件,查看是否有消息指明影响配置的外设问题。
  如果进程看上去在运行但是没有响应,杀死它们并重新启动。在某些情况,守护程序工作不正常,需要重新启动。
  确认/etc/nsswitch.conf配置文件正确。通常问题都出现在这里。
  如果试图手动启动守护程序,确保以root登录。
  陈绪先生:在Fedora上,
  1. 首先查看rpm -qa | grep ypbind,确保ypbind已经安装;
  2. 运行chkconfig ypbind on,再运行ntsysv确保ypbind被选中;
  3. 在/etc/yp.conf中,将所有行中,第一个选项均加入nis。
  4. 重启fedora,NIS帐户登陆生效。

 

NIS详解

网络信息服务(NIS)是集中控制几个系统管理数据库的网络用品。NIS简化了UNIX和LINUX桌面客户的管理工作,客户端利用它可以使用中心服务器的管理文件。桌面系统的用户无需建立他们自己的/etc/passwd,他们只简单的使用维护在NIS服务器的文件即可。 

提到NIS不得不先说明一下WINDOWS2000的域控制器,在局域网内有一台WIN2000域控制器,下面有一些机器加入到这个域中,在下的机器登录时,有一个选项是选择登入到本机还时登入到域内(应该是这么说的,有点记不清楚了,大概就是这个了),登入本地的密码有本机控制,但是如果登入域内,密码支有域控制器负责管理。 
  LINUX也是操作系统,跟WIN2000没有本质的区别,所以仔细读上段话,就能理解NIS是原理是什么样了,这时出现了一个重要的文件/etc/nsswitch.conf 

  NIS是一个客户机/服务器系统,ypbind是定义NIS服务器的客户端进程。一旦确定了服务器位置,客户机绑定到了服务器上,所以客户端的住处查询都发往服务器。ypserv是回答客户端查询的服务器进程。 


安装ypbind客户端 

rpm -ivh ypbind* 
这没有什么好说的。 

配置NIS客户端 
进程ypbind这客记机的NIS域定位服务器,NIS域包括所有NIS服务器和客户机。它与DNS不同,尽管有些管理员将NIS域名等同于DNS的域名。NIS域名只对那NIS服务器和客户机起作用。 

有两种方式配置NIS域名: 
 nisdomainname 定义显示NIS域名 
 yp.conf文件配置NIS域名。 

#nisdomainname gogo 
#nisdomainname 
gogo 

默认地,ypbind使用nisdomainname命令返回NIS域名,向NIS服务器发出请求时在网络内广播该地址。 



yp.conf文件 
/etc/yp.conf定义了yp.conf配置。如果找不到yp.conf文件,ypconf进程使用nisdomainname 命令返回的NIS域名,广播定位NIS服务器。ypbind将绑定到第一个相应请求的服务器上。 

ypserver hostname 
domain nisdomain broadcast | server hostname 

======== 
hostname,nisdomain字符为变量。 
使用ypserver配置选项为客户机指定服务器。yp.conf文件包括ypserver选项时,客户机使用命令nisdomainname返回的NIS域名,向ypserver命令的hostname字段指定的服务器发出请求。/etc/hosts文件中必须包含该主机的IP地址,还记得我说过什么了吗,DNS是取代的HOSTS的,在DNS中设定也是可以的。ypserver选项强制客户机连接到特定的服务器上。 

  在yp.conf文件中使用domain选项定义了NIS域名,指出客户机是广播定位还是直接向服务器发送请求。 

example: 
#/etc/yp.conf 

domain first server jh 
========= 
first作为域名,jh是这个域的服务器 jh在hosts中必须有相对应的IP地址 
或者jh IN A 192.168.1.1还记得这条指令是干什么的吗? 

------------------------ 

创建NIS服务器 

安装ypserv 

rpm -ivh ypserv* 

----------- 

NIS服务器提供的数据库,称为NIS映射表. 

创建独立服务器 

如果用户只有一个NIS域服务器,建立独立服务器,如果用户NIS域中有多个服务器,就需要选择其中一个作为该域的主服务器。其他作为从服务器。 

用户可以使用make命令初始化独立服务器,建立NIS映射表,文件/var/yp/Makefile包含了创建数据库的命令。 

example: 
#nsidomainname first 
#cd /var/yp 
#make 
gamke[1]:Entering directory '/var/yp/terns' 
Updateing passd.byname...... 
Updateing passwd.byuid....... 
............ 
........ 
..... 
... 
--------- 

创新主从服务器 

使用ypinit命令初始化主服务器,常见NIS映射表。默认地.ypinit同make命令给出的操作一样。要创建相对于从服务器的主服务器,用户需要编辑/var/yp/Makefile文件。在Makefile文件中找到NOPUSH设置为NOPUSH=false. 
修改后,运行ypinit -m 

exmpale: 
#nisdomwiname first 
#cd /var/yp 
#/usr/lib/yp/ypinit m 
........... 
      next host to add:1111.first.myhome.com 
      next host to add:2222.first.myhome.com 
.............. 
............ 
.............. 
is this correct? [y/n]y 
.......... 
......... 
updateing passwd.byname......... 
............. 
.......... 
........... 
累!!!! 


从服务器配置比主服务器简单。主服务器保存了所有的映射表。从服务器只需知道哪个是主服务器即可。ypinit -s 配置从服务器。 

example: 
#/usr/lib/yp/ypinit -s salve 
salve的IP地址也必须保存在hosts中。 

---------- 

安全性 
用户可以在/var/yp/securenets文件中定义服务器的安全性能。 

example: 

255.255.255.0 192.168.1.0 
授权192.168.1.0子网的用户可以访问服务器。 

----------------- 

ypserv.conf文件 

用户必须使用securenets文件,未必用ypserv.conf定义安全性。 

语法如下: 
  host:map:security:[mangle[]] 
字段如下 
 host 授权或禁止访问的计算机,它由地址/掩码对确定.例如      192.168.1.0/255.255.255.0 . *表示所有主机 
 map 该字段表示访问的NIS映射表项名称。例如:passwd.byuid。*表示映射表   中所有的字段都可用。 
 security 授权访问类型 
   none 允许访问,不加强安全性。 
   port 允许特权端口访问。只接收源端口小于1024的连接。 
   deny 禁止访问。 
   des 访问时需要数字加密标准(DES)认证。 
 [mangle[]] 指定应该在发出响应之前用“X”覆盖掉的字段(不明白) 

example: 
  # Host                : MAP : Security  : mangle 
  192.168.1.0/255.255.255.0   : *   :none       :no 
  *       :*    :deny       :no 


启动服务器 
  /etc/init.d/ypserv restart 
启动NIS客户端 
  /etc/init.d/ypbind restart 


测试NIS 
  NIS客户端应该绑定到服务器。ypwhich命令可以检测客户端是否正确的连接到服务器。 
  如果客户机正确的绑定到服务器,用ypcat检测服务器提供的信息。 

NIS与DNS是两会事,大家一定要搞清楚。虽然都有可能涉及到域名。但确实是两会事,他们之间会有一些连系。但绝不可以混在一起。切记,切记。 


==================================== 
nsswitch.conf文件 

nsswitch.conf文件不仅能处理主机表和DNS之间的优先次序,还能处理其它的问题。它为几个不同的系统管理数据库定义来源(多看几篇这句话,“几个不同的系统管理数据库”,可以是DNS,NIS,大家想一想) 

由nsswitch.conf控制的数据库 
alias    EMAIL别名 
ehters  用于RARP的以太网地址。 
hosts   主机名和IP地址 
password  用户帐号信息。 
还有许多,没有列出来。 


使用不带NIS的nsswitch.conf  example: 

password:   files 
shadow:     files 
........... 
hosts:     dns files 
#这句很重要,dns在先,files在后,这里的files指的是/etc/hosts文件,如果有客户端查询的时候,先找dns,再找files。顺序很重要。 
aliases:    files 

......... 
......... 
......... 


使用带NIS的nsswitch.conf example: 
  
hosts:  files nis dns 
protocols:   nis files 
......... 
........ 
........ 

控制选择过程 

nsswitch.conf文件提供了几个可用于查询测试的状态关键字: 
success(成功) 查询返回所期望的结果。该状态的缺省的动作是返回结果给提交查询的应用程序(想一下,在我的DNS第二讲,说到解析器,就可以是提交查询的应用程序,不过他是DNS查询是了),然后退出查询过程。 
nofound(没有找到)  虽然查询工作正常,但所期望值没有找到。缺省的动作是查询下一行的源。 
unavail(不可用) 提交查询的源不可用。例,名称服务器没有运行。 
tryagain(重度) 源暂时不可用。缺省的动作是继续向下一个源提交查询。 

有两个关键字可以识别缺省的动作:return和continue。return告诉解析器返回值给应用程序并结束查询。continue告诉解析器继续向下一个源提交查询。 

 状态和动作关键字可以结合起来,加到nsswitch.conf文件的源单中,以控制查询过程何时移到下一个源。 
  状态检查的语法是: 
    [ ( ! ? status=action ) + ] 
 问号(?)代表任何状态值;叹号(!)对状态值取反。!SUCCESS是不成功的意思。方括号"[]"用于包括整个条件语句。圆括号"()"是可选的,只用来包含每个测试条件,可以有多个条件,每个条件用圆括号包含,之间用加号连接。 
  例如: 
    [ ( NOFOUND=RETURN ) + ( TRYAGAIN+TRETURN) ] 
   其实就是C语言中的“与”“或”“非”的关系。 

下面是nsswitch.conf中的主机一行: 
  hosts:      dns [ !UNAVAIL=return ] files 
 说明了UNAVAIL之外的所有状态,解析器应该将返回值给应用程序,然后退出。 
只有当DNS名称服务器没有运行的时候,解析器才能向主机表查询。如果有条件语句改变,缺省的动作卞会起作用,UNAVAI的缺省动作是continue。 
   nsswich.conf文件已经取代了hosts.conf,因为它可以提供更多的资源控制方式。LINUX系统中通常这两个文件都有,但实际上起作用的是nsswitch.conf文件。

  评论这张
 
阅读(643)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018