当前位置: 首页 > 科技观察

NIS基础

时间:2023-03-13 02:45:03 科技观察

NetworkInformationService(NIS)  (NetworkInformationService)  NIS是一种集中控制多个系统管理数据库的网络设备。NIS简化了UNIX和LINUX桌面客户端的管理,客户端可以使用中央服务器的管理文件。桌面系统的用户不需要创建自己的/etc/passwd,他们只需使用NIS服务器上维护的文件即可。  提到NIS要先说明WINDOWS2000域控制器。局域网中有一个WIN2000的域控制器,下面的一些机器加入到这个域中。登录下一台机器时,有一个选项可以选择登录本机还是登录域,本地登录密码由本机控制,但如果是登录域,则密码为由域控制器管理。  LINUX也是一个操作系统,和WIN2000没有本质区别,所以仔细阅读上面这段话,你就能明白NIS的原理是什么了,这时候就出现了一个重要的文件/etc/nsswitch.conf  NIS是一个client/server系统,ypbind是定义NISserver的clientprocess。一旦确定了服务器位置,客户端就绑定到服务器,因此客户端的位置查询被发送到服务器。ypserv是回答客户端查询的服务器进程。  安装ypbind客户端  rpm-ivhypbind*  这个没啥好说的。  配置NIS客户端  进程ypbind本机的NIS域定位服务器,NIS域包括所有NIS服务器和客户端。它与DNS不同,尽管一些管理员将NIS域名与DNS的域名等同起来。NIS域名仅适用于该NIS服务器和客户端。  有两种配置NIS域名的方法:  nisdomainname定义显示NIS域名  yp.conf文件配置NIS域名。  #nisdomainnamegogo  #nisdomainname  gogo  默认情况下,ypbind使用nisdomainname命令返回NIS域名,该域名在向NIS服务器发出请求时在网络上广播。  yp.conf文件  /etc/yp.conf定义yp.conf配置。如果找不到yp.conf文件,ypconf进程将使用nisdomainname命令返回的NIS域名进行广播并定位NIS服务器。ypbind将绑定到响应请求的第一台服务器。  yp服务器主机名  domainnisdomainbroadcast|serverhostname  ========  hostname,nisdomain字符是变量。  使用ypserver配置选项为客户端指定服务器。当yp.conf文件包含ypserver选项时,客户端使用命令nisdomainname返回的NIS域名向ypserver命令的主机名字段指定的服务器发送请求。/etc/hosts文件中必须包含主机的IP地址,记住我说的,DNS代替HOSTS,也可以在DNS中设置。ypserver选项强制客户端连接到特定服务器。  使用yp.conf文件中的domain选项定义NIS域名,表示客户端是广播位置还是直接向服务器发送请求。  示例:  #/etc/yp.conf  #  domainfirstserverjh  =========  first是域名,jh是这个域名的名称服务器jh必须在hosts中有对应的IP地址  或jhINA192.168.1.1。你还记得这个命令的作用吗?  ------------------------  创建NIS服务器  安装ypserv  rpm-ivhypserv*  ------------  NIS服务器提供的数据库称为NIS映射表。  创建独立服务器如果域中有多台服务器,需要选择其中一台作为域的主服务器。其他人充当从属服务器。  用户可以使用make命令初始化单机服务器,创建NIS映射表。文件/var/yp/Makefile包含创建数据库的命令。  示例:  #nsidomainnamefirst  #cd/var/yp  #make  gamke[1]:正在进入目录'/var/yp/terns'  正在更新passd.byname......  正在更新passwd.byuid.......  ............  ........  ......  ...  -----------  创新大师-slave服务器  使用ypinit命令初始化主服务器,公共NIS映射表。默认情况下,.ypinit与make命令给出的相同。要创建相对于从属的主控,用户需要编辑/var/yp/Makefile。在Makefile中找到NOPUSH并将其设置为NOPUSH=false。  修改后,运行ypinit-m  exmpale:  #nisdomwinamefirst  #cd/var/yp  #/usr/lib/yp/ypinitm  .............  下一个要添加的主机:1111.first.myhome.com  下一个要添加的主机:2222.first.myhome.com  ......…  …………  ……  这样对吗?[y/n]y  …………  …………  更新密码.byname.......  ............  ............  ............  来自服务器配置比主服务器简单。主服务器保存所有映射表。从服务器只需要知道哪个是主服务器即可。ypinit-s配置从属服务器。  示例:  #/usr/lib/yp/ypinit-ssalve  salve的IP地址也必须保存在hosts中。  ----------  Security  用户可以在/var/yp/securenets文件中定义服务器的安全性能。  示例:  255.255.255.0192.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的连接。  拒绝 禁止访问。  desAccess需要数字加密标准(DES)身份验证。  [mangle[]]指定在发送响应之前应该用“X”覆盖的字段(不懂)  示例:  #Host:MAP:Security:mangle  192.168.1.0/255.255.255.0:*:none:no  *:*:deny:no  启动服务器  /etc/init.d/ypservrestart  启动NIS客户端  /etc/init.d/ypbindrestart  测试NIS  NIS客户端应该绑定到服务器。ypwhich命令可以检查客户端是否正确连接到服务器。  如果客户端正确绑定了服务器,使用ypcat查看服务器提供的信息。  NIS和DNS是两个session的事情,大家要清楚。虽然两者都可能涉及域名。但确实是两届的事情,他们之间会有一些联系。但永远不要混淆它们。记住,记住。  ====================================  nsswitch.conf文件  nsswitch.conf文件不仅处理主机表和DNS之间的优先级,还处理其他问题。它定义了几个不同的系统管理数据库的来源(多看这句话,“几个不同的系统管理数据库”,可以是DNS,NIS,大家想一想)  是由nsswitch.conf控制的数据库  aliasEMAIL别名  ehtersRARP的以太网地址。  hosts 主机名和IP地址  密码用户帐户信息。  还有很多,就不一一列举了。  在没有NIS的情况下使用nsswitch.conf例子:  password:files  shadow:files  ............  hosts:dnsfiles  #这句话很重要,dns在前,files在后,这里的files是指/etc/hosts文件,如果有客户端查询,先找dns,再找files。订单很重要。  别名:文件  …………  …………  …………  使用nsswitch使用NIS.conf示例:  主机:文件nisdns  协议:nis文件  …………  …………  ........  控制选择过程  nsswitch.conf文件提供了几个状态关键字,可用于查询测试:  success(成功) 查询返回预期结果。这个状态默认的动作是把结果返回给提交query的应用(想一想,我第二讲DNS,说到resolvers,可以是提交query的应用,但是它是一个DNSquery),退出查询过程。  nofound(未找到)虽然查询正常,但没有找到预期的值。默认操作是查询下一行的源。  unavail(不可用)提交查询的来源不可用。例如,名称服务器未运行。  tryagain(严重)源暂时不可用。默认操作是继续向下一个来源提交查询。  有两个关键字标识默认操作:return和continue。return告诉解析器向应用程序返回一个值并结束查询。continue告诉解析器继续向下一个源提交查询。  state和action关键字可以组合并添加到nsswitch.conf文件中的源表中,以控制查询进程何时移动到下一个源。  状态检查的语法是:  [(!?status=action)+]  问号(?)代表任何状态值;感叹号(!)否定状态值。!SUCCESS表示不成功。方括号“[]”用于将整个条件语句括起来。括号“()”是可选的,仅用于括起每个测试条件。可以有多个条件。每个条件都包含在括号中并用加号连接。  例如:  [(NOFOUND=RETURN)+(TRYAGAIN+TRETURN)]  其实就是C语言中“与”、“或”、“非”的关系。  这是nsswitch.conf中的主机行:  hosts:dns[!UNAVAIL=return]files  指定除UNAVAIL之外的所有状态,解析器应将值返回给应用程序,然后退出。  只有当DNS名称服务器没有运行时,解析器才能查询主机表。如果条件语句发生变化,则默认动作Bian生效,UNAVAI的默认动作为continue。  nsswich.conf文件已经取代了hosts.conf,因为它提供了更多的资源控制。在LINUX系统中,通常这两个文件都有,但是nsswitch.conf文件才是真正起作用的。【编者推荐】题目:NIS让网络管理变得简单Solaris9的NFS+NIS配置秘诀NIS服务器介绍