21.7. 添加没有用户私有组的用户
默认情况下,每当在 IdM 中创建新用户时,IdM 都会创建用户私有组(UPG)。UPG 是特定的组类型:
- UPG 与新创建的用户具有相同的名称。
- 用户是 UPG 的唯一成员。UPG 不能包含任何其他成员。
- 私有组的 GID 与用户的 UID 相匹配。
不过,可以添加用户而不创建 UPG 。
21.7.1. 没有用户私有组的用户
如果 NIS 组或其他系统组已使用将要分配给用户私有组的 GID,则有必要避免创建 UPG。
您可以通过两种方式执行此操作:
- 添加没有 UPG 的新用户,而不全局禁用私有组。请参阅 全局启用私有组时添加没有用户私有组的用户 。
- 对所有用户全局禁用 UPG,然后添加新用户。请参阅 对所有用户全局禁用用户私有组,和 在用户私有组全局禁用时添加用户。
在这两种情况下,在添加新用户时,IdM 都需要指定 GID,否则操作将失败。这是因为对于新用户,IdM 需要 GID,但默认用户组 ipausers
是一个非 POSIX 组,因此没有关联的 GID。您指定的 GID 不必对应于已经存在的组。
指定 GID 不会创建新组。它仅为新用户设置 GID 属性,因为 IdM 需要属性。
21.7.2. 在全局启用私有组时添加没有用户私有组的用户
您可以添加用户而不创建用户私有组(UPG),即使系统上启用了 UPG。这需要为新用户手动设置 GID。有关为何需要此功能的详情,请查看 没有用户私有组的用户。
步骤
要防止 IdM 创建 UPG,请在
ipa user-add
命令中添加--noprivate
选项。请注意,若要命令成功,您必须指定一个自定义的 GID。例如,使用 GID 10000 添加新用户:
$ ipa user-add jsmith --first=John --last=Smith --noprivate --gid 10000
21.7.3. 对所有用户全局禁用用户私有组
您可以在全局范围内禁用用户私有组(UPG)。这样可防止为所有新用户创建 UPG。现有用户不会受到这一更改的影响。
步骤
获取管理员权限:
$ kinit admin
IdM 使用目录服务器管理的条目插件来管理 UPG。列出插件的实例:
$ ipa-managed-entries --list
要确保 IdM 不创建 UPG,请禁用负责管理用户私有组的插件实例:
$ ipa-managed-entries -e "UPG Definition" disable Disabling Plugin
注意要在稍后重新启用
UPG Definition
实例,请使用ipa-managed-entries -e "UPG Definition" enable
命令。重新启动目录服务器来加载新配置。
$ sudo systemctl restart dirsrv.target
要在禁用 UPG 后添加用户,您需要指定 GID。如需更多信息,请参阅在用户私有组群全局禁用时添加用户
验证步骤
要检查 UPG 是否全局禁用,请再次使用 disable 命令:
$ ipa-managed-entries -e "UPG Definition" disable Plugin already disabled
21.7.4. 当全局禁用用户私有组时添加用户
当全局禁用用户私有组(UPG)时,IdM 不会自动为新用户分配 GID。要成功添加用户,您必须手动分配 GID,或使用自动成员规则来分配 GID。有关为何需要此功能的详情,请查看 没有用户私有组的用户。
先决条件
- 必须对所有用户全局禁用 UPG。如需更多信息,请参阅对所有用户全局禁用用户私有组
步骤
要确保在禁用创建 UPG 时成功添加新用户,请选择以下之一:
添加新用户时指定自定义的 GID。GID 不必对应于已经存在的用户组。
例如,当从命令行添加用户时,请在
ipa user-add
命令中添加--gid
选项。- 使用自动成员规则将用户添加到具有 GID 的现有组中。