初始 NIS 映射将通过运行以下命令创建
% /usr/lib/yp/ypinit -m |
这在首次设置 NIS 主服务器时完成。有关此操作的更多信息,请阅读第 9 节。如果您希望向服务器添加新映射或删除旧映射,则需要编辑/var/yp/Makefile并更改all规则。添加或删除生成映射的规则的名称。
如果您删除映射,您还必须删除相应的文件。
在此更改之后,您只需要运行
% make -C /var/yp |
映射应该会被创建。
如果您修改了 NIS 映射的源文件(例如,如果您通过将帐户添加到 passwd 文件来创建新用户),则需要重新生成 NIS 映射。这可以通过简单的
% make -C /var/yp |
此命令将检查哪些源文件已更改,重新创建映射,并告知 ypserv 映射已更改。
一个条目的长度受 NIS 协议限制为 1024 个字符。您不能仅仅增加此值并重新编译系统。每个使用 NIS v2 的系统都期望键和数据值的大小不超过 1024 字节;如果您突然在客户端和服务器上将 YPMAXRECORD 增大,您将破坏网络中所有其他使用 NIS 的系统的互操作性。为了使其正常工作,您必须联系每个支持 NIS 的供应商,并让他们同时进行更改。您很可能无法做到这一点。
在 glibc 2.1 及更高版本中,此限制已从 glibc NIS 实现中删除。因此,在 Linux 下可以使用更长的条目,但前提是您的网络中没有其他 NIS 客户端或服务器。
要允许创建具有更长条目的 NIS 映射,您需要添加--no-limit-check选项到makedbm调用中/var/yp/Makefile.
结果应如下所示
DBLOAD = $(YPBINDIR)/makedbm -c -m `$(YPBINDIR)/yphelper --hostname` --no-limit-check |
警告:这会破坏 NIS 协议,即使 Linux 支持它,并非所有在 Linux 下运行的 Applictions 都能与此更改一起工作!
还有另一种解决此问题的方法,用于/etc/group条目。这个想法来自 Ken Cameron
1. Break the entry into more than one line and name each group slightly differnet. 2. keep the GID the same for all. 3. have the first entry with the right group name and the GID. I don't put any user names in this one. What happens is that going by user name you pick up the GID when the code reads it. Then going the other way it stops after the first match of GID and takes that name. It's ugly but works! |