典型的UNIX®管理员经常使用一系列重要的实用程序,技巧和系统,以协助管理过程。 有一些关键实用程序,命令行链和脚本可用来简化不同的过程。 这些工具中的一部分随操作系统一起提供,但是大多数技巧来自多年的经验以及减轻系统管理员生活的渴望。 本系列的重点是从各种不同UNIX环境中的可用工具中获取最大收益,包括简化异构环境中管理的方法。
网络信息系统(NIS)是一个联网的数据库,可用于存储需要在多台计算机之间共享的系统文件。 您可以在图1中看到NIS系统的基本结构。
NIS主文件包含所有信息的主副本。 NIS从属服务器可以下载(或发送)此信息的副本,并且所有NIS服务器(无论是主服务器还是从属服务器)都侦听来自客户端的请求,以在NIS数据库中查找信息。 只有NIS主服务器才能更新数据库;只有NIS主服务器才能更新数据库。 尽管从站共享信息,但它们仅共享从NIS主站发送给他们(或下载)的信息。 当NIS客户端要解析特定信息时,它们会联系NIS从属服务器或NIS主服务器。
对于NIS设置中应具有的服务器数量没有任何规则,但是传统上每个子网至少要有一个NIS服务器(例如254台主机)。 NIS系统不是特别有效,因为不缓存有关客户端的信息。 这意味着通常会从文件中查找数据的所有操作都必须通过NIS请求信息。 这包括明显的情况,例如在登录期间查找密码信息,以及更简单的操作(例如获取涉及列出文件/目录所有权信息的文件列表),这些必须在用户数据库中查找。
数据本身存储在一系列NIS映射中,并且这些映射是在NIS主机上基于通常由主机使用的相同文件构建的。 NIS的主要作用是作为信息的数据库共享机制,例如用户/密码数据库(/ etc / passwd和/ etc / shadow)和主机文件(/ etc / hosts),尽管它可以用于共享通常位于/ etc中的以下任何文件之一:
auto.home或auto_home auto.master或auto_master 引导参数 醚 组 主机 ipnodes 网络组 网络掩码 网路 密码 协议 rpc 服务 阴影例如,如果您使用主机数据库中的主机文件作为地图源来共享主机地图,则可以将NIS客户端配置为使用NIS数据库中的信息来查找主机信息,以代替其自身的本地/ etc。 / hosts文件。
可以使用NIS代替域名系统(DNS)来获取主机信息。 NIS的真正好处是它可以在网络内共享和交换其他信息,尤其是密码和网络文件系统(NFS)自动安装程序信息。
主机仅在一个方向上为这些数据库提供所有信息。 从属服务器无法更新从主控服务器复制的信息,除非登录和密码数据存在特殊情况。 为了使用户能够更改其密码,可以使用特殊的password命令来更新服务器密码信息,然后将其传播到域中的所有从属服务器。
域名是信息共享的关键部分,因为它提供了将NIS映射分组在一起的关键身份信息。 您可以将NIS客户端配置为使用特定的NIS域,并且该域将客户端计算机,主机和数据库标识为共享相同的信息。
NIS域名与DNS域名无关,并且与DNS协议无关。 您的NIS和DNS域可以相同或不同,并且不会影响系统的工作方式。 通常,NIS域旨在保存有关给定网络甚至部门唯一的少量机器的信息,而DNS是用于管理和确定分层域结构中主机IP地址的大型分布式系统。跨多个网络。
您可以使用domainname命令设置域名:
$ domainname mynisdomain请注意,域应为单个单词; DNS不需要使用分层格式。
您可以通过将域名放入/ etc / defaultdomain文件(Solaris),编辑/etc/rc.nfs文件(AIX®)以及编辑/etc/rc.config中的NIS_DOMAIN值来永久设置域。 .d / namesrvrs文件(HP-UX),或/etc/yp.conf或/etc/conf.d/域名文件(Linux®)。
要在主服务器上设置NIS,有两个阶段:
初始化NIS数据库。 启动NIS服务。您创建的数据库将基于您已经在服务器上配置的现有信息。 但是,您不想使用这些文件的原始版本。 这是因为您不想在每次要更新信息时都修改主服务器的数据文件。 您需要改为使用这些文件的副本,并在每次要将信息分发给从站时更新该副本。
最简单的方法是将源文件(从先前给出的列表中)复制到新目录,例如/ etc / nisdata或/ var / nisdata。 您在此目录中复制的文件构成了NIS共享信息的基础。
复制文件后,最好对NIS源文件和它们所基于的原始文件上的信息进行一些更改。 首先,您要避免发生更改时必须更改特定于主机的文件和NIS主文件(毕竟,这是将信息迁移到NIS的原因之一)。 通过确保不重复信息,可以简化数据的长期管理。
理想情况下,NIS源文件应包含要共享的信息,而原始文件应包含主主机唯一的信息,或者在NIS故障时需要的信息。 例如,您可能在/ etc / hosts中包含关键主机记录,并通过NIS共享信息,以便NIS故障不会影响主机名查找。 但是NFS自动安装程序映射(auto.home)可能仅通过NIS可用。
无论您决定如何划分信息,都必须对/ etc / passwd文件的副本进行一次更改; 删除根帐户。 如果将root帐户保留在NIS源文件中,则所有通过NIS共享信息的计算机都使用相同的root passwd和定义。 如果您知道根密码,这将使整个网络面临潜在的安全风险。
在要在许多不同的UNIX / Linux主机之间共享NIS信息的异构环境中,还应该修剪任何系统级用户信息的/ etc / passwd文件。 例如,用户sys,adm,新闻,邮件,uucp; 所有这些在不同系统上可能具有不同的数字用户ID和角色,因此将无法通过NIS共享统一数据。
在某些您还共享/ etc / aliases(或/ etc / mail / aliases)邮件别名数据库以与Sendmail一起使用的系统上,您可能无法将文件复制到另一个位置,因为该位置在Sendmail中是硬连线的工具。 更高版本的Sendmail使您可以设置此文件的位置,并且不会遇到相同的问题。
现在您已经有了用于构建信息的源文件,您需要使用数据初始化NIS映射。 为此,您需要在/ var / yp中配置Makefile来构建地图,然后运行make生成地图信息。
用于构建地图的Makefile是标准的Makefile, 清单1中详细介绍了Solaris主机上文件的前几行。
您可能需要编辑Makefile的以下元素:
NIS映射-要生成的映射列表。 它包含在“ all:”行中-编辑内容以匹配您要创建的地图。 DIR变量-保存主要源数据文件的位置。 PWDIR变量-保存/ etc / passwd文件(或其副本)的位置。 DOM变量-指定域的名称。 如果您已经使用domainname命令设置了domainname ,则可以保留指定的值,该值将运行domainname命令来确定您设置的域名。现在您可以构建NIS映射了。 您可以使用Makefile或ypinit命令以两种方式执行此ypinit 。
要使用Makefile方法,请在/ var / yp目录中运行make来构建地图:
$ make对于ypinit方法,使用-m命令行选项运行ypinit ; 系统将提示您输入要配置的所有YP服务器(主服务器和从服务器)的名称,然后将构建映射(请参见清单2 )。
当数据转换为NIS映射时,根据信息的使用方式,源数据将组织为许多不同的映射。 例如,/ etc / passwd文件生成两个映射:passwd.byname和passwd.byuid,这两个映射可基于用户名查找登录名,而passwd.byuid则使用唯一的用户ID号进行查找。 对于主机,生成的映射是hosts.byname和hosts.byaddr,分别是通过主机名和IP地址进行查找的。
文件已创建。 现在,您只需要启动NIS服务器,即可共享数据库。
ypserv命令启动NIS服务器进程,该进程侦听来自NIS客户端的查询。 要启动NIS服务,请运行以下命令:
$ ypserv客户端现在应该能够查询NIS数据库以获取信息。
您应确保NIS进程自动启动。 在大多数SVR4主机(Solaris,AIX,HP-UX)上,通常存在一个文件,例如/etc/init.d/nis.server或/sbin/init.d/nis.server,您可以将其链接到该文件。启动脚本,以确保服务器已启动。
在NIS主服务器上,您可能还想启动用于运行和支持NIS服务的其他守护程序之一。 ypxfrd守护程序提供了用于在从属服务器和主NIS服务器之间同步NIS映射的传输服务。 不必使用它,但是在地图很大的网络中,它可以显着提高传输和同步过程的性能。
更新的守护程序提供了一种通过网络更新NIS源文件的安全方法。 它不是必需的,但是如果您希望能够远程更新NIS信息,则可能很有用。
yppasswdd守护程序侦听更改用户密码的请求并相应地更新文件。 处理完更新后,会将更改“推送”到NIS从属服务器,以便密码几乎立即对用户有效。 您需要调整此守护程序的配置,以便它正确更新NIS源文件,而不是主服务器的/ etc / passwd文件。 如果您在/ var / yp中配置了Makefile,则通常可以设置正确的信息。 这在不同的UNIX版本上有所不同,但是,对于大多数情况,这只是执行守护程序时更改命令行的一种情况。 例如,您将在AIX上执行的命令更改为:
rpc.yppasswdd -a -f DIR/passwdDIR是NIS数据文件所在的目录。
在Linux下,使用-D选项指定目录:
rpc.yppasswdd -DDIR在HP-UX上,编辑/etc/rc.config.d/namesrvrs文件中的YPPASSWDD_OPTIONS变量,以指向正确的目录和文件。
理想情况下,在将其转换为NIS从属服务器之前,应该已经将NIS从属服务器配置为NIS客户端。 这是因为从属服务器必须能够查找并联系主服务器以获取数据库,才能在服务之前创建NIS映射的副本。
要设置NIS从站,请按照下列步骤操作:
设置域名: $ domainname nisdomain 运行ypinit ,指定主服务器的主机名: $ ypinit -s masterserver启动NIS服务器和NIS客户端(请参见清单3 ):
NIS从站自动向NIS主站注册,以便更新由主站自动发送到从站。
每台要查询NIS映射的计算机都必须配置为连接到NIS服务器。 您可以使用ypinit或手动两种方式进行操作。 要使用ypinit ,请运行以下命令:
$ ypinit -c系统将要求您指定要使用的NIS服务器的名称。
确保启动客户端服务,并在启动时使用/etc/init.d/nis.client或类似脚本配置服务。
要手动执行该过程,您可以对ypbind守护程序使用广播选项,ypbind守护程序为本地请求提供服务,并将其发送到NIS服务器。 要使用此方法,请首先设置域名:
$ domainname nisdomain然后启动NIS守护程序:
$ ypbind -broadcast要确认您的机器已正确配置为访问远程地图,请使用yppoll命令测试地图的可用性。 例如,使用以下命令检查passwd.byname映射是否存在:
$ yppoll passwd.byname要查看地图数据,请使用ypcat (请参见清单4 )。
现在您已经有了地图,您应该将系统配置为在查找信息时使用地图。
/etc/nsswitch.conf文件告诉系统应在哪里查找特定信息,例如主机名和登录信息。 您可以使用此文件来控制检查数据库的顺序(或优先级)以及如何处理故障。
清单5中显示了该文件的示例。
第一列是数据库;第二列是数据库。 后续条目按顺序列出了应用于查找信息的源。
例如,passwd数据库正在使用“文件”(换句话说,/ etc / passwd)来解析登录名和用户ID信息。 但是,主机数据库先使用本地文件,然后再询问DNS系统。
要配置NIS,请将单词nis添加到搜索的数据库列表中。 该顺序很重要,因此请先检查NIS,然后再使用本地文件。 对于登录/密码查找,应该设置以下内容,如清单6所示。
您也可以更具体地说明成功或失败时的处理方法。 例如,以上配置告诉系统查找NIS,如果未找到结果,则使用文件。 但是,查找可能已失败,因为NIS系统存在技术故障,而不是信息不在NIS映射中。
您可能希望主机名查找默认情况下使用NIS,而不是自动解析,而仅在NIS故障时使用文件。 可以在每个数据库之后使用[STATUS = ACTION]格式,其中STATUS是以下之一: success, notfound, unavail, tryagain ,而ACTION是return或success, notfound, unavail, tryagain之一。
ACTION定义了发生特定状态时应发生的情况。 return选项指示解析过程应返回而不处理任何其他数据库条目。 继续表示应使用下一个数据库。
STATUS值的定义如下:
success -未发生错误,并且找到了所请求的条目。 默认操作是返回。 notfound -没有出现错误,并没有发现所请求的条目。 默认操作是继续。 unavail -数据库永久不可用。 默认操作是继续。 tryagain数据库暂时不可用,您可以重试。 默认操作是继续。例如,要配置上面概述的系统,其中仅系统故障会导致故障转移到本地文件,您可以使用以下内容,如清单7所示。
但是,在配置登录信息选项时应小心。 如果您不通过NIS共享您的root用户和密码(以及其他系统用户),那么您不应配置找不到匹配“ return”的失败。 像这样设置配置可以防止不在NIS中的用户(包括root用户)登录。
为了使NIS正常工作,必须更新数据库。 仅更新文件是不够的,您必须重新创建NIS映射,如果使用从属服务器,则将NIS主映射推入或重新加载到从属。
最简单的方法是在主服务器上使用Makefile(请参见清单8 )。
这将重新创建映射,并将映射更改推送到从属服务器。
NIS系统实质上是通过网络接口公开现有的基于文件的数据,从而提供了共享登录名,密码,主机和其他信息的最简单方法之一。
NIS映射以NIS域名为中心,NIS域名是网络组中所有主机的唯一标识符。 使用此域标记信息,然后共享。 设置NIS也很简单,只需几个命令即可设置主服务器,从属服务器或NIS客户端。
翻译自: https://www.ibm.com/developerworks/aix/library/au-satnis/index.html
相关资源:微信小程序源码-合集6.rar