6.1 经常检查 nssid.sh 文件

如果以下内容有一条属实,就必须检查新安装的服务器的 /opt/novell/oes_install 下是否存在 nssid.sh 文件:

如果 nssid.sh 底稿文件存在,则必须在服务器上运行该文件以同步特定系统用户的文件所有权信息。

以下几节将解释该操作的原因。

6.1.1 系统用户、eDirectory、NSS 和 Linux 用户管理

部分 H.0, OES 2 系统用户和组中所述,将 NSS 卷安装到 OES Linux 服务器上需要进行某些系统级别的修改,其中大多数的修改均是自动完成的。可以应用以下逻辑:

  • 默认情况下,将以系统创建的 POSIX 用户身份在 OES Linux 服务器上运行万维网服务(如 Apache 和 Tomcat)和某些 OES 服务(如 NetStorage)。

  • 这些系统创建的用户必须能够读取 OES Linux 服务器上的所有卷类型中的数据。

  • NSS 卷上的数据只能由 eDirectory™ 用户访问。

  • 因此,当在服务器上创建 NSS 卷时,必须以创建 eDirectory 用户的方式创建系统用户并对其启用 Linux 用户管理 (LUM),这样,这些用户可以同时具有 eDirectory 和 POSIX 用户的权限。随后,必须从本地系统中去除系统创建的用户。

    有关 LUM 的更多信息,请参见Linux 用户管理:eDirectory 用户对 Linux 的访问

6.1.2 自动对系统创建的用户启用 LUM

当在 OES 1 或 2 Linux 服务器上安装 NSS 时,系统创建的用户(必须能够访问 NSS 数据)被自动创建为启用 LUM 的 eDirectory 用户,然后从本地服务器中去除。有关更多信息,请参见部分 H.1, Linux 上创建的系统用户部分 H.3, Linux 上创建的系统组

例如,通过用户 wwwrun 的身份在所有 OES 1 和 2 Linux 服务器上运行 Apache 万维网服务器。因此,如果这些服务器上安装了 NSS,则必须在 eDirectory 中创建 wwwrun 用户,并对其启用 LUM,然后从本地服务器中去除。如何为在 eDirectory 中创建的用户指派 UID,取决于 OES 的第一次安装版本。

如果第一次安装了具有 NSS 的 OES 1 服务器

如果与 Apache 万维网服务器一起安装 SLES 9 服务器(和 OES 1 作为扩展),则将向系统创建的 wwwrun 本地用户指派一个系统生成的 UID。例如,可能指派 6 作为该用户的 UID。

无论您是初始安装期间还是之后在服务器上安装 NSS,都会在 eDirectory 中自动创建一个 wwwrun 用户,该用户由系统生成的 UID (6) 与本地 wwwrun 用户作为特性储存的 UID 相同,同时还将从服务器上去除本地 wwwrun 用户。

每次 Apache 万维网服务器启动时,都会以储存在 eDirectory 中的 wwwrun 用户帐户运行,并且由于启用了 LUM,因此该用户可起到本地用户的作用。所有由 wwwrun 创建和使用的文件都会显示文件所有者的 UID 为 6。由于 eDirectory 中的 wwwrun 的 UID 为 6,因此 Apache 万维网服务器可以启动和运行。

如果第一次安装了具有 NSS 的 OES 2 服务器

如果开始时安装的是 SLES 10 SP1(和 OES 2 作为扩展),则向系统创建的本地用户指派标准 UID。例如,Apache 万维网服务器所使用的 wwwrun 用户的 UID 通常为 30。OES 2 所特有的、但不属于 SLES 10 基础系统的用户和组也拥有标准 UID,这些 UID 从未被 SLES 10 SP1 指派给它创建的其他用户。

如果在 OES 2 Linux 服务器上安装 NSS,并且该 OES 2 服务器是安装有 NSS 的树中的第一台服务器,则将在 eDirectory 中自动创建 wwwrun 用户,并将该用户的 UID (30) 储存为一个特性,然后将本地 wwwrun 用户从服务器中去除。

每次 Apache 万维网服务器启动时,都会以实际储存在 eDirectory 中的 wwwrun 用户帐户运行,但是由于启用了 LUM,因此该用户可起到本地用户的作用。所有由 wwwrun 创建和使用的文件都会显示文件所有者的 UID 为 30。由于 eDirectory 中的 wwwrun 的 UID 为 30,因此 Apache 万维网服务器可以启动和运行。

6.1.3 安装 OES 时检查是否存在 UID 冲突

对于每个额外装入树中的 OES 1 或 2 Linux 服务器,在安装 NSS 后(无论初始安装还是以后安装),安装程序都将检查服务器上的系统用户 UID 是否与 eDirectory 中相应的系统用户 UID 相匹配。在后续的服务器安装期间是否可能会出现不匹配,取决于在该树中第一次或后续安装的 OES Linux 的版本。

表 6-1 本地系统用户和 eDirectory 之间潜在的 UID 冲突

安装在树中的第一个具有 NSS 的 OES Linux 服务器的版本

后续安装在树中的具有 NSS 的 OES Linux 服务器的版本

潜在冲突/系统操作

OES 1

OES 1

UID 可能匹配,但也可能不匹配,除非安装的两个系统完全相同。

例如,eDirectory 中和本地服务器上的 wwwrun 的 UID 可能分别为 6 和 7。

如果 UID 不匹配,安装 OES 2 时将创建一个 nssid.sh 文件。

例如,如果运行底稿,则将使系统文件上的所有值为 7 的 UID 更改为 6。

OES 2

很可能不匹配。

例如,eDirectory 中 wwwrun 的 UID 可能为 6,但是 OES 2 Linux 服务器上的 wwwrun 的 UID 为 30。

如果 UID 不匹配,安装 OES 2 时将创建一个 nssid.sh 文件。

例如,如果运行底稿,则将使系统文件上的所有值为 30 的 UID 更改为 6。

OES 2

OES 1

很可能不匹配。

例如,eDirectory 中 wwwrun 的 UID 为 30,但 OES 1 服务器上 wwwrun 的 UID 可能为 6。

如果 UID 不匹配,安装 OES 2 时将创建一个 nssid.sh 文件。

例如,如果运行底稿,则将使系统文件上的所有值为 6 的 UID 更改为 30。

OES 2

eDirectory 和 OES 2 服务器上的 wwwrun 的 UID 均为 30。无需 nssid.sh 文件。

6.1.4 创建 nssid.sh 以同步所有受影响的服务器文件的 UID

OES 2 Linux 安装程序将检查本地系统创建的用户和储存在 eDirectory 中的同一用户的 UID 之间是否存在冲突。如果发现冲突,则将在 /opt/novell/oes_install 中创建一个名为 nssid.sh 的壳层底稿文件,目的就是同步服务器上具有不匹配 UID 的所有系统文件。

安装程序会单独分析系统创建的每个用户和组,并且只有在 UID 冲突时才会在底稿中放置一个项。

安装程序不会自动运行 nssid.sh 底稿,因为该操作可能需要 10 分钟到数个小时(如果文件系统非常大)来同步每个受影响的用户和组的文件 UID。

同样,安装程序也不会警告可能存在潜在的 UID 冲突。

因此,如果您使用 OES 2 或 OES 1 Linux 服务器上的 NSS,则必须参考表 6-1,了解有关可能会发生冲突的组合,然后阅读同步 UID 信息中有关您安装的每一台可能发生冲突的服务器的说明。

6.1.5 同步 UID 信息

当您的服务器存在潜在冲突时,请参考表 6-1,如果之后还不能解决潜在冲突,则请按照以下说明完成操作:

  1. root 用户的身份登录服务器。

  2. 检查是否存在以下文件:

    /opt/novell/oes_install/nssid.sh

  3. 如果存在该文件,则在服务器命令提示符后输入以下命令运行该文件:

    /opt/novell/oes_install/nssid.sh

    如果不存在该文件,则无需进行任何操作。