JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:命名和目录服务(DNS、NIS 和 LDAP)     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分关于命名和目录服务

1.  命名和目录服务(概述)

2.  名称服务转换器(概述)

第 2 部分DNS 设置和管理

3.  DNS 设置和管理(参考)

第 3 部分NIS 设置和管理

4.  网络信息服务 (Network Information Service, NIS)(概述)

5.  设置和配置 NIS 服务

6.  管理 NIS(任务)

口令文件和名称空间安全

管理 NIS 用户

如何向 NIS 域添加新 NIS 用户

设置用户口令

NIS 网络组

使用 NIS 映射

获取映射信息

更改映射的主服务器

如何更改映射的主服务器

修改配置文件

如何修改配置文件

修改和使用 Makefile

使用 Makefile

更改 Makefile 宏/变量

修改 Makefile

如何修改 Makefile 以使用特定数据库

如何修改 Makefile 以删除数据库

更新和修改现有映射

如何更新随缺省集合提供的映射

维护已更新映射

传播 NIS 映射

使用 cron 进行映射传送

将 Shell 脚本用于 cronypxfr

直接调用 ypxfr

记录 ypxfr 活动

修改非缺省映射

使用 makedbm 修改非缺省映射

从文本文件创建新映射

向基于文件的映射中添加项

通过标准输入创建映射

修改通过标准输入创建的映射

添加从属服务器

如何添加从属服务器

使用启用 C2 安全性的 NIS

绑定到特定 NIS 服务器

更改计算机的 NIS 域

如何更改计算机的 NIS 域名

将 NIS 与 DNS 结合使用

如何配置通过 NIS 和 DNS 执行计算机名和地址查找

处理混合的 NIS 域

禁用 NIS 服务

7.  NIS 疑难解答

第 4 部分LDAP 命名服务的设置和管理

8.  LDAP 命名服务介绍(概述/参考)

9.  LDAP 基本组件和概念(概述)

10.  LDAP 命名服务的规划要求(任务)

11.  为使用 LDAP 客户机设置 Sun Java System Directory Server(任务)

12.  设置 LDAP 客户机(任务)

13.  LDAP 疑难解答(参考)

14.  LDAP 一般参考(参考)

15.  从 NIS 转换为 LDAP(概述/任务)

16.  从 NIS+ 转换为 LDAP

A.  Solaris 10 软件中对 DNS、NIS 和 LDAP 的更新

服务管理工具的更改

DNS BIND

pam_ldap 更改

文档错误

词汇表

索引

更新和修改现有映射

安装 NIS 之后,您可能会发现,有些映射需要频繁更新,而其他映射则从来不需要更改。例如,在大公司的网络中,passwd.byname 映射可能会频繁更改,而 auto_master 映射则只需少量更改,甚至不进行任何更改。

缺省 NIS 映射中所述,缺省 NIS 映射的缺省位置是主服务器上的 /var/yp/domainname ,其中 domainname 是 NIS 域的名称。当您需要更新某个映射时,可以根据该映射是否为缺省映射来使用两个更新过程之一。

以下各部分介绍如何使用各种更新工具。在实践中,您可能会决定只在系统已启动并运行后添加非缺省映射或更改 NIS 服务器集合时才使用这些工具。

如何更新随缺省集合提供的映射

使用以下过程可以更新随缺省集合提供的映射。

  1. 成为主服务器上的超级用户。

    请始终只在主服务器上修改 NIS 映射。

  2. 编辑要更改的映射的源文件,无论该文件位于 /etc 还是您选择的其他某个目录中。
  3. 键入以下命令。
    # cd /var/yp
    # make mapname

    然后,make 命令将根据您在映射对应的文件中所做的更改来更新映射。此命令还会在其他服务器中传播这些更改。

维护已更新映射

以下各节介绍完成更新随缺省集合提供的映射之后进行的其他过程。

传播 NIS 映射

更改映射后,Makefile 将使用 yppush 向从属服务器传播新映射(除非在 Makefile 中设置了 NOPUSH)。它会通知 ypserv 守护进程并发送映射传送请求以完成此操作。然后,从属服务器上的 ypserv 守护进程会启动 ypxfr 进程,该进程将与主服务器上的 ypxfrd 守护进程联系。在进行了一些基本检查(例如,映射是否真的发生了更改?)后,便会传送映射。然后,从属服务器上的 ypxfr 将向 yppush 进程发送响应,指明传送是否成功。


注 - 上述过程适用于新创建的、但在从属服务器中尚不存在的映射。必须通过在从属服务器上运行 ypxfr 将新映射发送到从属服务器。


有时候,映射无法传播,这时必须使用 ypxfr 手动发送新映射信息。您可以选择以两种不同方式使用 ypxfr:通过根 crontab 文件定期使用,或在命令行中交互使用。这些方法将在以下各节中进行讨论。

使用 cron 进行映射传送

不同映射的更改速度有所不同。例如,有些映射有时候几个月都不更改一次(如缺省映射中的 protocols.byname 以及非缺省映射中的 auto_master);但 passwd.byname 可能一天就会进行多次更改。使用 crontab 命令调度映射传送,可以为各个映射设置特定的传播时间。

要以适合于映射的速度定期运行 ypxfr,每台从属服务器中的根 crontab 文件应包含适当的 ypxfr 项。ypxfr 与主服务器联系,并仅在主服务器中的副本比本地副本更新时才传送映射。


注 - 如果主服务器运行带有缺省 -m 选项的 rpc.yppasswdd,则每次 yp 口令发生更改时,passwd 守护进程都会运行 make,重新生成 passwd 映射。


将 Shell 脚本用于 cronypxfr

作为为每个映射创建单独的 crontab 项的备选方法,您可能更喜欢让根 crontab 命令运行 shell 脚本来定期更新所有映射。用于更新映射的 shell 脚本样例位于 /usr/lib/netsvc/yp 目录中。这些脚本名为 ypxfr_1perdayypxfr_1perhourypxfr_2perday。您可以修改或替换这些 shell 脚本来满足站点需要。示例 6-1 显示了缺省的 ypxfr_1perday shell 脚本。

示例 6-1 ypxfr_1perday Shell 脚本

#! /bin/sh
#
# ypxfr_1perday.sh - Do daily yp map check/updates
PATH=/bin:/usr/bin:/usr/lib/netsvc/yp:$PATH
export PATH
# set -xv
ypxfr group.byname
ypxfr group.bygid
ypxfr protocols.byname
ypxfr protocols.bynumber
ypxfr networks.byname
ypxfr networks.byaddr
ypxfr services.byname
ypxfr ypservers

如果根 crontab 每天执行一次,此 shell 脚本会每天更新一次映射。您也可以使脚本以其他频率更新映射(如每周一次、每月一次、每小时一次等等)。但请注意,频繁传播映射会降低性能。

在为 NIS 域配置的每台从属服务器上,以超级用户的身份运行相同的 shell 脚本。逐个更改每台服务器上确切的执行时间,以避免使主服务器陷入停顿状态。

如果要从特定的从属服务器中传送映射,请在 shell 脚本中使用 ypxfr -h machine 选项。放入脚本中的命令的语法如下所示。

# /usr/lib/netsvc/yp/ypxfr -h machine [ -c ] mapname

其中,machine 是要传送的映射所在服务器的名称,mapname 是所请求的映射的名称。如果使用了 -h 选项但未指定计算机,ypxfr 将尝试从主服务器中获取映射。如果执行 ypxfrypserv 未在本地运行,则必须使用 -c 标志,以使 ypxfr 不向本地 ypserver 发送清除当前映射的请求。

您可以使用 -s domain 选项从其他域向本地域传送映射。这些映射在各个域中应该相同。例如,两个域可能会共享相同的 services.bynameservices.byaddr 映射。或者,也可以使用 rcprdist 来获取更多控制,以便跨域传送文件。

直接调用 ypxfr

另一种调用 ypxfr 的方法是将其作为命令来运行。通常,只在异常情况下才使用此方法-例如,在设置临时 NIS 服务器来创建测试环境时或在尝试使断开服务的 NIS 服务器快速与其他服务器保持一致时。

记录 ypxfr 活动

ypxfr 的传送尝试和结果可以捕获并存储在日志文件中。如果存在名为 /var/yp/ypxfr.log 的文件,则会向该文件中附加结果。对于该日志文件的大小没有任何限制。为防止日志文件无限制地增大,请键入以下命令定期清空该文件。

# cd /var/yp
# cp ypxfr.log ypxfr.log.old
# cat /dev/null > /var/yp/ypxfr.log

可让 crontab 一周执行一次上述命令。要禁用日志记录,请删除日志文件。

修改非缺省映射

要更新非缺省映射,必须执行下列操作。

  1. 创建或编辑对应的文本文件。

  2. 生成(或重新生成)新映射或更新的映射。生成映射的方法有两种。

    • 使用 Makefile。使用 Makefile 是生成非缺省映射的首选方法。如果映射在 Makefile 中具有一个项,请运行 make name,其中 name 是要生成的映射的名称。如果映射中没有 Makefile 项,请尝试按照修改和使用 Makefile中的说明创建一项。

    • 使用 /usr/sbin/makedbm 程序。makedbm(1M) 手册页全面描述了此命令。

使用 makedbm 修改非缺省映射

如果您没有输入文件,可通过两种不同的方法使用 makedbm 修改映射:

从文本文件创建新映射

假设使用编辑器或 shell 脚本在主服务器上创建了一个文本文件 /var/yp/mymap.asc。您希望从此文件中创建一个 NIS 映射并将其置于 homedomain 子目录中。为此,请在主服务器上键入以下命令。

# cd /var/yp
# makedbm mymap.asc homedomain/mymap

mymap 映射现在存在于主服务器上的 homedomain 目录中。要将该新映射分发到从属服务器,请运行 ypxfr

向基于文件的映射中添加项

mymap 中添加项是非常简单的。首先,必须修改文本文件 /var/yp/mymap.asc。如果修改实际的 dbm 文件而不修改对应的文本文件,所做的修改会丢失。然后,按上面所示运行 makedbm

通过标准输入创建映射

当不存在原始文本文件时,请向 makedbm 键入输入,从键盘创建 NIS 映射,如下所示(以 Ctrl-D 组合键结束)。

ypmaster# cd /var/yp
ypmaster# makedbm -homedomain-/mymapkey1 value1 key2 value2 key3 value3

修改通过标准输入创建的映射

如果以后需要修改映射,可以使用 makedbm 反编译映射,并创建一个临时的中间文本文件。要反编译映射并创建一个临时文件,请键入下列命令。

% cd /var/yp
% makedbm -u homedomain/mymap > mymap.temp

在生成的临时文件 mymap.temp 中,每行包含一项。您可以根据需要,使用任何文本编辑器编辑此文件。

要更新映射,请键入以下命令将修改过的临时文件的名称提供给 makedbm

% makedbm mymap.temp homedomain/mymap
% rm mymap.temp

然后,成为超级用户并键入下列命令,将映射传播到从属服务器。

# yppush mymap

上一段介绍了如何使用 makedbm 创建映射;但几乎每项您实际必须执行的操作都可以通过 ypinitMakefile 完成,除非您在系统启动并运行后向数据库中添加了非缺省映射或更改了 NIS 服务器集合。

无论您在 /var/yp 中使用 Makefile 还是其他某个过程,目标都是相同的。主服务器上的映射目录中最终必须有格式正确的新 dbm 文件对。