JavaScript is required to for searching.
跳过导航链接
退出打印视图
在 Oracle Solaris 11.1 中使用命名和目录服务     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

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

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

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

3.  管理 DNS(任务)

4.  设置 Oracle Solaris Active Directory 客户机(任务)

第 2 部分NIS 设置和管理

5.  网络信息服务(概述)

6.  设置和配置 NIS(任务)

7.  管理 NIS(任务)

口令文件和名称空间安全

管理 NIS 用户

如何向 NIS 域添加新 NIS 用户

设置用户口令

NIS 网络组

使用 NIS 映射

获取映射信息

更改映射的主服务器

如何更改映射的主服务器

修改配置文件

如何修改配置文件

修改和使用 /var/yp/Makefile

使用 Makefile

更改 Makefile 宏/变量

修改 Makefile

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

如何修改 Makefile 以删除数据库

更新和修改现有映射

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

维护更新后的映射

传播 NIS 映射

使用 cron 命令进行映射传送

将 Shell 脚本用于 cronypxfr

直接调用 ypxfr 命令

记录 ypxfr 活动

修改非缺省映射

使用 makedbm 命令修改非缺省映射

从文本文件创建新映射

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

通过标准输入创建映射

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

使用 NIS 服务器

绑定到特定 NIS 服务器

如何设置计算机的 NIS 域名

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

禁用 NIS 服务

8.  NIS 故障排除

第 3 部分LDAP 命名服务

9.  LDAP 命名服务介绍(概述)

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

11.  为使用 LDAP 客户机设置 Oracle Directory Server Enterprise Edition(任务)

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

13.  LDAP 故障排除(参考信息)

14.  LDAP 命名服务(参考信息)

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

词汇表

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

更新和修改现有映射

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

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

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

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

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

  1. 成为 NIS 主服务器的管理员。

    有关更多信息,请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"

  2. 编辑您要更改的映射的源文件。

    该文件可能位于 /etc 或您选择的某个其他目录中。

  3. 运行 make 命令。
    # cd /var/yp
    # make mapname

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

维护更新后的映射

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

传播 NIS 映射

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


注 - 对于尚未存在于从属服务器上的新创建的映射,以上过程将可行。必须通过在从属服务器上运行 ypxfr 将新映射发送到从属服务器。


有时候,映射无法传播,您必须使用 ypxfr 手动发送新的映射信息。您可以选择以两种不同方式使用 ypxfr:通过 root 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 脚本来满足站点需要。以下示例显示的是缺省 ypxfr_1perday shell 脚本。

示例 7-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 脚本会每天更新一次映射。您还可以具有其他脚本,用以每周更新一次映射、每月更新一次映射、每小时更新一次映射,等等。不过请注意,频繁传播映射会引起性能降低。有关更多信息,请参见 crontab(1) 手册页。

在为 NIS 域配置的每台从属服务器上,以 root 用户的身份运行相同的 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 映射。另外,为实现更多的控制,可以使用 rcprsync 来跨域传送文件。

直接调用 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 项,请尝试按照修改和使用 /var/yp/Makefile中的说明创建一个项。

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

使用 makedbm 命令修改非缺省映射

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

从文本文件创建新映射

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

# cd /var/yp
# makedbm mymap.asc home-domain/mymap

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

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

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

通过标准输入创建映射

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

ypmaster# cd /var/yp
ypmaster# makedbm home-domain/mymap key1 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

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

# yppush mymap

前面的段落解释了如何使用 makedbm 创建映射。不过,您实际上必须做的几乎所有事情都可以通过使用 ypinit 命令和 /var/yp/Makefile 来完成,除非您在系统已启动并运行后向数据库添加非缺省映射或更改 NIS 服务器集。

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