跳到主要内容

ID 范围

本地范围与每个信任域的范围如何决定 uid 和 gid,范围类型的含义,AD 用户的 uid 如何从 SID 算出,以及范围建立后不能随意修改的原因。

本页说明 IPA Server 下的 ID ranges 页面。ID 范围定义 uid 和 gid 从哪个区间分配。本地用户从本地范围顺序取号;AD 用户不在目录里,uid 由信任范围按 SID 计算,因此每台 Linux 主机看到的数字一致。

ID 范围

自带的范围

范围类型说明
<REALM>_id_range本地域范围安装时随机取一段 200000 个 ID(示例 60000 到 261999),所有 IPA 用户和组从这里分配。起始随机是为了多个 IPA 域合并时不冲突
<REALM>_subid_range从属 ID 范围供从属 ID使用,2147483648 起
<AD 域>_id_rangeAD 信任范围建立信任时自动创建,200000 个 ID,每个受信任的 AD 域一条

从属 ID 范围在 IPA 内部按 AD 信任类型(ipa-ad-trust,带一个内部 SID)实现,ipa idrange-show --raw 返回的也是该值。列表里它的 Range type 显示为 Active Directory domain range 属于正常。

字段

范围详情

字段含义
First Posix ID of the range、Number of IDs in the range区间。各范围不能重叠
Primary RID base、Secondary RID base只对本地范围有意义,供 Samba 使用:IPA 用户的 SID 等于域 SID 加 RID,RID 等于基准加(uid 减起始)。Secondary 供组使用
Range type见下表
Domain SID信任范围绑定的 AD 域
范围类型含义
ipa-local本地
ipa-ad-trustAD 用户的 uid 由算法生成:起始加(RID 对范围大小取模)。AD 侧不需要 POSIX 属性
ipa-ad-trust-posix直接读取 AD 用户对象的 uidNumber、gidNumber(AD 已安装并维护 RFC 2307 属性)。范围必须覆盖 AD 里实际使用的数字

ipa-ad-trust 的算法保证同一 SID 在所有客户端得到同一 uid。RID 超过范围大小(AD 用户数超过 200000)时需要再增加一条同域范围。

边界

事项说明
修改已用范围已分配过 ID 的范围不能缩小、不能改起始。扩容是新增范围,不是修改旧范围
修改本地范围不重排现有用户,只影响之后新建的对象
删除信任范围AD 用户在 Linux 上的 uid 消失,文件属主显示为数字。用相同参数重建范围可以恢复同样的 uid
客户端缓存sssd 缓存里的 uid 不随范围改动同步。修改后执行 sss_cache -E

本页内容