跳过导航链接 | |
退出打印视图 | |
系统管理指南:命名和目录服务(DNS、NIS 和 LDAP) Oracle Solaris 10 8/11 Information Library (简体中文) |
4. 网络信息服务 (Network Information Service, NIS)(概述)
11. 为使用 LDAP 客户机设置 Sun Java System Directory Server(任务)
以下各节介绍如何为主服务器准备源文件和 passwd 文件。
源文件应位于主服务器上的 /etc 目录或其他某个目录中。将源文件存储在 /etc 中并不合适,因为这样映射中的内容将与主服务器上的本地文件中的内容相同。这是 passwd 和 shadow 文件的一个特殊问题,因为所有用户都可以访问主服务器映射,因而超级用户口令将通过 passwd 映射传递给所有 NIS 客户机。有关其他信息,请参见Passwd 文件和名称空间安全。
但是,如果将源文件放在其他某个目录中,您必须修改 /var/yp 中的 Makefile,将 DIR=/etc 行更改为 DIR=/your-choice,其中,your-choice 是将用来存储源文件的目录的名称。这样便可将服务器上的本地文件视为客户机上的本地文件进行处理。(最好先保存原始 Makefile 的副本。)
此外,如果要从缺省目录外的其他目录中获取 audit_user、auth_attr、exec_attr 和 prof_attr,必须将 RBACDIR =/etc/security 修改为 RBACDIR=/your-choice。
passwd 映射是一种特殊情况。除了早期的 Solaris 1 的 passwd 文件格式外,此 NIS 实现还接受 /etc/passwd 和 /etc/shadow 文件格式作为生成 NIS 口令映射的输入。
出于安全原因,用于生成 NIS 口令映射的文件不应包含 root 项,以防止未经授权的超级用户访问。因此,不应使用主服务器 /etc 目录中的文件生成口令映射。对于用于生成口令映射的口令文件,应删除其中的 root 项,并将它们放置在可免遭未经授权的访问的目录中。
例如,只要主服务器口令输入文件本身不是指向其他文件的链接,并且其位置在 Makefile 中已指定,就应该将这些文件存储在诸如 /var/yp 等目录或您选择的任何目录中。正确的目录选项会根据 Makefile 中指定的配置进行自动设置。
注意 - 确保 PWDDIR 指定的目录中的 passwd 文件不包含 root 项。 |
如果源文件所在的目录不是 /etc,则必须更改 Makefile 中的 PWDIR 口令宏,以引用 passwd 和 shadow 文件所在的目录,具体操作是将行 PWDIR=/etc 更改为 PWDIR/your-choice ,其中 your-choice 是要用来存储 passwd 映射源文件的目录的名称。
为向 NIS 映射的转换准备源文件。
角色包含授权和具有一定特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的第 9 章 "使用基于角色的访问控制(任务)"。
检查以下文件:
auto.home 或 auto_home
auto.master 或 auto_master
audit_user
auth_attr
bootparams
ethers
exec_attr
group
hosts
ipnodes
netgroup
netmasks
networks
passwd
protocols
rpc
service
shadow
user_attr
与其他源文件不同,/etc/mail/aliases 文件不能移至其他目录。此文件必须位于 /etc/mail 目录中。有关更多信息,请参阅 aliases(4)。
注 - 通过将 /var/yp/Makefile 中的 ALIASES = /etc/mail/aliases 项指向其他位置,可以添加特定于 nis 的邮件别名文件。然后当您运行 make 时,ALIASES 项将创建一个 mail.aliases 映射。当 /etc/nsswitch.conf 文件正确地将除 files 之外的 nis 作为目标时,sendmail 服务除了使用 /etc/mail/aliases 文件,还使用此映射。请参阅修改和使用 Makefile。
这些操作可以通过 sed 或 awk 脚本或文本编辑器来完成。Makefile 可自动执行一些文件清理工作,但最好在运行之前手动检查并清理这些文件。
对于该特定文件,源文件数据的格式必须是正确的。请检查各文件对应的手册页,以确保每个文件都具有正确格式。
检查源文件并将其复制到源文件目录之后,您现在需要将这些源文件转换为 NIS 服务使用的 ndbm 格式的映射。在主服务器上调用 ypinit 时,它会自动执行此操作,如使用 ypinit 设置主服务器中所述。
ypinit 脚本将调用 make 程序,该程序将使用 /var/yp 目录中的 Makefile。/var/yp 目录中提供了缺省的 Makefile,该文件包含将源文件转换为期望的 ndbm 格式映射所需要的命令。
您可以按原样使用缺省的 Makefile,如果需要,也可以对其进行修改。(如果确实要修改缺省的 Makefile,请确保先复制并存储原始的缺省 Makefile,以便将来需要时使用。)您可能需要对 Makefile 进行以下一项或多项修改:
非缺省映射
如果创建了自己的非缺省源文件并想将其转换为 NIS 映射,必须将这些源文件添加到 Makefile。
DIR 值
如果希望 Makefile 使用 /etc 目录以外的其他目录中存储的源文件(如源文件目录中所述),必须将 Makefile 中的 DIR 的值更改为希望使用的目录。更改 Makefile 中的该值时,请勿使行缩进。
PWDIR 值
如果希望 Makefile 使用 /etc 目录以外的其他目录中存储的 passwd、shadow 和/或 adjunct 源文件,必须将 Makefile 中 PWDIR 的值更改为希望使用的目录。更改 Makefile 中的该值时,请勿使行缩进。
域名解析程序
如果希望 NIS 服务器对不在当前域中的计算机使用域名解析程序,请注释掉 Makefile 行 B=,并取消对行 B=-b 的注释(激活)。
Makefile 的功能是为列在 all 下的每个数据库创建相应的 NIS 映射。数据在通过 makedbm 传递之后,收集在 mapname.dir 和 mapname.pag 两个文件中。这两个文件都位于主服务器上的 /var/yp/domainname 目录中。
Makefile 根据需要从 /PWDIR/passwd、/PWDIR/shadow 和 /PWDIR/security/passwd.adjunct 文件生成 passwd 映射。
ypinit 脚本用于设置主服务器和从属服务器以及客户机,以使用 NIS。它还会首先运行 make,在主服务器上创建映射。
要使用 ypinit 在主服务器上生成一组新的 NIS 映射,请执行以下操作。
角色包含授权和具有一定特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的第 9 章 "使用基于角色的访问控制(任务)"。
# cp /etc/nsswitch.files /etc/nsswitch.conf
# /usr/sbin/ypinit -m
如果选择 y,ypinit 将在遇到第一个问题时退出,然后您可以修复问题并重新启动 ypinit。建议在初次运行 ypinit 时这样做。如果希望继续操作,可尝试手动修复出现的所有问题,然后重新启动 ypinit。
仅当之前已安装 NIS 时才会显示此消息。
此程序将使用 /var/yp 中的 Makefile(缺省或修改过的文件)中包含的说明。make 命令将清除指定的文件中剩余的所有注释行。它还会对这些文件运行 makedbm,创建适当映射并为每个映射建立主服务器的名称。
如果 Makefile 推送的映射所对应的域不是主服务器上的 domainname 命令返回的域,则可以使用正确的 DOM 变量标识启动 ypinit shell 脚本中的 make 来确保这些映射被推送到正确的域,如下所示:
# make DOM=domainname password
此命令会将 password 映射推送到目标域,而不是主服务器所属的域。
# cp /etc/nsswitch.nis /etc/nsswitch.conf
此命令会将当前的转换器文件替换为缺省的面向 NIS 的转换器文件。您可以根据需要编辑此文件。
通常,一台 NIS 主服务器只支持一个 NIS 域。但是,如果要使用一台主服务器来支持多个域,则在设置服务器为更多域提供服务时,必须对使用 ypinit 设置主服务器中所述的步骤稍作修改。
在服务器上运行 domainname 命令。该命令返回的域名是服务器的缺省域。使用使用 ypinit 设置主服务器中所述的步骤可以顺利为该域设置服务。但是要为其他任何域配置服务,必须按如下所示修改 ypinit shell 脚本。
# make DOM=correct-domain passwd
correct-domain 是要为其设置服务的其他域的名称,passwd 是 make 目标。此命令会将 passwd 映射推送到目标域,而不是主服务器所属的域。