Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 4 章 管理用户和组

用户和组群的控制是 Red Hat Enterprise Linux 系统管理的核心元素。本章解释了如何在图形用户界面和命令行中添加、管理和删除用户和组,并介绍高级主题,如创建组目录。

4.1. 用户和组介绍

虽然用户可以是用户(这意味着与物理用户相关联的帐户),或者是特定应用使用的帐户,但组是组织的逻辑表达式,将用户连接在一起以实现共同目的。组中的用户共享相同的读取、写入或执行该组所拥有的文件的权限。

每个用户都与一个唯一数字标识号关联,称为用户 ID (UID)。类似地,每个组都与组 ID( GID)关联。创建文件的用户也是该文件的所有者和组所有者。文件会为所有者、组和其他任何人单独分配读取、写入和执行权限。文件所有者只能由 root 更改,并且 root 用户和文件所有者都可以更改访问权限。

此外,Red Hat Enterprise Linux 支持文件和目录的访问控制列表(ACL ),它们允许设置所有者之外的特定用户的权限。有关这个功能的详情请参考 第 5 章 访问控制列表

保留的用户和组群 ID

Red Hat Enterprise Linux 为系统用户和组保留 1000 以下的用户和组群 ID。默认情况下,用户管理器 不显示系统用户。保留的用户和组 ID 记录在 setup 软件包中。要查看文档,请使用这个命令:

cat /usr/share/doc/setup*/uidgid

建议的做法是分配尚未保留的 5,000 个 ID,因为保留范围将来可能会增加。要使分配给新用户的 ID 默认从 5,000 开始,请更改 /etc/login.defs 文件中的 UID _MIN 和 GID_MIN 指令:

[file contents truncated]
UID_MIN         5000
[file contents truncated]
GID_MIN         5000
[file contents truncated]
注意

对于在更改 UID_MIN 和 GID_MIN 指令之前创建的用户,UID 仍会从默认的 1000 开始。

即使使用以 5,000 开头的新用户和组 ID,建议不要提高 1000 以上系统保留的 ID,以避免与保留 1000 限制的系统冲突。

4.1.1. 用户专用组

Red Hat Enterprise Linux 使用用户专用组 (UPG)方案,这使 UNIX 组更易于管理。无论何时在系统中添加新用户,都会创建一个用户私人组群。它的名称与为其创建的用户的名称相同,并且该用户是用户专用组的唯一成员。

用户专用组可以安全地为新创建的文件或目录设置默认权限,从而允许该用户的用户和组对文件或目录进行修改

此设置决定了哪些权限应用到新创建的文件或目录,称为 umask,并在 /etc/bashrc 文件中配置。通常在基于 UNIX 的系统上,umask 设置为 022,它只允许创建文件或目录的用户进行修改。在此方案下,所有其他用户(包括创建者组的成员 )不得进行任何修改。但是,根据 UPG 方案,这种"组保护"并不是必需的,因为每个用户都有自己的专用组。如需更多信息,请参阅 第 4.3.5 节 “使用 umask为新文件设置默认权限”

所有组的列表存储在 /etc/group 配置文件中。

4.1.2. shadow 密码

在有多个用户的环境中,使用 shadow -utils 软件包提供的shadow 密码 来增强系统身份验证文件的安全性非常重要。因此,安装程序默认启用 shadow 密码。

以下是影子密码相对于传统在基于 UNIX 的系统中存储密码的优势列表:

  • 影子密码通过将加密的密码哈希从全局可读的 /etc/passwd 文件移动到 /etc/ shadow,这仅可由 root 用户读取,从而提高系统安全性。
  • 影子密码存储有关密码有效期的信息.
  • 影子密码允许实施 /etc/login.defs 文件中设置的一些安全策略。

shadow-utils 软件包提供的大多数实用程序可以正常工作,无论是否启用了 shadow 密码。但是,由于密码过期信息只存储在 /etc/shadow 文件中,一些实用程序和命令在未首先启用影子密码的情况下无法正常工作:

  • 用于设置密码期限参数的 chage 实用程序。详情请查看 Red Hat Enterprise Linux 7 安全指南中 的密码 安全部分。
  • 用于管理 /etc/group 文件的 gpasswd 实用程序。
  • usermod 命令带有 -e、--expiredate 或 -f, --inactive 选项。
  • useradd 命令带有 -e、--expiredate 或 -f, --inactive 选项。