组
POSIX 组、非 POSIX 组与 External 组的区别,External 组如何把 AD 组引入 Linux 策略,嵌套与间接成员,以及网络组的用途。
本页说明 Identity 下 Groups 的 User groups 和 Netgroups 两个页面。Host groups 见主机。

三种用户组
| 类型 | GID | 作用 | 用途 |
|---|---|---|---|
| POSIX | 有 | 出现在 id 输出里,文件系统可以用它做属组 | 默认类型。组共享目录、chgrp |
| 非 POSIX | 无,列表显示空 | 只是成员容器,客户端 id 看不到 | 只用于 HBAC、Sudo、角色 |
| External | 无 | 成员是 AD 的用户或组(SID),不能包含 IPA 用户 | 映射 AD 组,见下文 |
创建时选择非 POSIX 可以节省 GID;已建成的 POSIX 组不能改回非 POSIX。
安装程序创建的组:
| 组 | 用途 |
|---|---|
admins | 域管理员 |
editors | 安装程序预置 |
ipausers | 每个活跃用户自动加入;默认组在 Configuration 页修改 |
trust admins | 可以建立信任 |
External 组:用 AD 组管理 Linux 访问
需要 ad-trust 模块并已建立信任(AD 信任前置)。
HBAC 和 Sudo 规则只接受 IPA 组,不接受 AD 组。桥接方式是两层组:
- 创建一个 External 组(如
ad_linux_admins),在 Members 页签的 External 下添加 AD 组AD.EXAMPLE.COM\linux-admins。添加时 IPA 向 AD 解析 SID,AD 不可达则添加失败。 - 创建一个 POSIX 组(如
ad-admins),把 External 组作为成员组加入。 - HBAC 和 Sudo 规则引用 POSIX 组。

需要两层的原因:External 组没有 GID,客户端不能把它当 POSIX 组使用;POSIX 组不能直接包含 AD 对象。AD 组内的人员变动在 AD 完成,IPA 侧不需要改动。
成员与嵌套

Members 页签分 Users、User groups、Services、External、User ID overrides 五类,右上角 Direct 与 Indirect 切换。间接成员来自嵌套:A 组包含 B 组,则 B 的成员是 A 的间接成员,HBAC 和 Sudo 判定时计入。嵌套没有深度限制,但客户端 sssd 每次登录都要展开,超过三四层登录明显变慢。
Member managers 是被授权修改该组成员的用户或组,不需要属于 admins,适合部门负责人管理自己的组。
网络组

网络组(NIS netgroup)是用户、主机、域三元组的集合,服务于仍读取 netgroup 的旧软件:NFS exports、旧版 sudoers、/etc/security/access.conf。新部署优先使用 HBAC,只在客户端软件明确要求 netgroup 时创建。IPA 自动为每个主机组生成同名的隐藏网络组,ipa netgroup-find --private 可以列出。
边界
| 事项 | 说明 |
|---|---|
| 组重命名 | 界面不支持;ipa group-mod --rename 可以 |
| 删除组 | 不删除成员。引用该组的规则少了这一项,规则本身不报错 |
| External 成员显示 | 显示 AD 组的 SID 或解析出的名字;信任中断后名字无法解析,回退显示 SID |