系统管理指南:基本管理

使用较大的用户 ID 和组 ID

可以为 UID 和组 ID (group ID, GID) 指定带符号整数的最大值,即 2147483647。

但是,大于 60000 的 UID 和 GID 只具有部分功能且与许多 Oracle Solaris 功能不兼容。因此,应避免使用大于 60000 的 UID 或 GID。

下表介绍了与 Oracle Solaris 产品和以前的发行版的互操作性问题。

表 4–4 大于 60000 的 UID 或 GID 的互操作性问题

类别 

产品或命令 

问题 

NFS 互操作性 

SunOS 4.0 NFS 软件及其兼容发行版 

NFS 服务器和客户机代码将较大的 UID 和 GID 截断到 16 位。如果在使用较大的 UID 和 GID 的环境中使用运行 SunOS 4.0 和兼容发行版的系统,可能会产生安全问题。运行 SunOS 4.0 和兼容发行版的系统需要一个修补程序以避免出现此问题。 

名称服务互操作性 

NIS 名称服务和基于文件的名称服务 

UID 大于 60000 的用户可以在运行 Solaris 2.5(及兼容发行版)的系统上登录或者使用 su 命令。但是,会将他们的 UID 和 GID 设置为 60001 (nobody)。

 

NIS+ 名称服务 

UID 大于 60000 的用户被拒绝访问运行 Solaris 2.5(及兼容发行版)和 NIS+ 名称服务的系统。 

下表说明了 UID 和 GUI 限制。

表 4–5 较大 UID 和 GID 的限制摘要

UID 或 GID 

限制 

60003 或更大 

用户在登录运行 Solaris 2.5(及兼容发行版)和 NIS 或文件名称服务的系统之后,将获得以下 UID 和 GID:nobody

65535 或更大 

  • 运行 Solaris 2.5(及兼容发行版)和 NFS 版本 2 软件的系统会将 UID 截断到 16 位,这有可能会产生安全问题。

  • 使用具有缺省归档格式的 cpio 命令复制文件的用户,会看到系统针对每个文件都返回一条错误消息。而且,归档中的 UID 和 GID 被设置为 nobody

  • 基于 x86 的系统: 运行与 SVR3 兼容的应用程序的用户可能会在进行系统调用时看到 EOVERFLOW 返回代码。

  • 基于 x86 的系统: 如果用户尝试在已挂载的 System V 文件系统上创建文件或目录,则 System V 文件系统会返回一个 EOVERFLOW 错误。

100000 或更大 

ps -l 命令最多可显示五位的 UID。因此,如果列显的列中包括大于 99999 的 UID 或 GID,则该列将不对齐。

262144 或更大 

使用具有 -H odc 格式的 cpio 命令或者使用 pax -x cpio 命令复制文件的用户,会看到系统针对每个文件都返回一条错误消息。而且,归档中的 UID 和 GID 被设置为 nobody

1000000 或更大 

使用 ar 命令的用户,其归档中的 UID 和 GID 设置为 nobody

2097152 或更大 

使用 tar 命令、cpio -H ustar 命令或 pax -x tar 命令的用户,其 UID 和 GID 设置为 nobody