我们公司有许多独立站点,目前每个站点都有自己的 Linux 身份验证方案。我们正在考虑重新设计一个统一的方案,未来计划将所有帐户移植到单个 LDAP,可能是 OpenLDAP。作为第一阶段的一部分,我们希望重新做所有的 gid,以至少符合某种标准。我们希望为每个站点分配一系列 gid,以便根据需要使用。我们希望从 gid 10000 开始(以避免系统 gid 和任何特定站点上任何其他已建立的 gid),并为每个 gid 分配至少 1000 个 gid 供使用。这个计划将我们的最高 gid 设置为略低于 300000。
问题归结为 OpenLDAP 是否可以引用如此高的 gid。这不是有多少个 gid 的问题,因为大多数站点目前都不需要 Linux gid。问题只是 OpenLDAP 是否会在访问至少这么高或更高的值时遇到问题。据我了解,*NIX 操作系统认为的“gid”对 OpenLDAP 来说只是一个值,因此从理论上讲,OpenLDAP 方面不应该有限制,但我没有发现有人这样说,也没有人成功使用过超过 200000 的 gid。
是否有人真正知道使用 300000 范围内的 gid 是否会导致 OpenLDAP 出现问题?
答案1
GidNumber 不受限制。
GID 编号定义为一个整数,模式定义
attributetype ( 1.3.6.1.1.1.1.1 NAME 'gidNumber'
DESC 'An integer uniquely identifying a group in an administrative domain'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
根据RFC 4517 LDAP:语法和匹配规则
3.3.16. 整数
整数语法的值是无限大小的整数
。此语法的值的 LDAP 特定编码是数字
的可选带符号十进制数字字符串表示形式
(例如,数字 1321 由字符串
“1321”表示)。编码由以下方式定义...
因为它是一个字符串而不是数字,所以操作系统无法确定有符号整数的最大大小,并且LDAP 中的 GID 数量没有限制。
另一方面,您的操作系统支持和 PAM 库可能限制为 65534。
答案2
1/ 是的,gid 和 uid 的限制基本上几乎是无限制的。
2/ 我遇到了旧 tar 命令(不是 GNU tar)的回归问题,无法解压超过 ~2000000 的 uid/gid。GNU tar 没有问题。我保持在限制以下。
3/ 我强烈建议 Ldap 的 uid/gid 超出 Unix Uid/Gid 范围 65535。将 Ldap 与 Unix(使用 sssd/nslcd/openldap-ssh 等)集成时,可能会出现 uid/gid 冲突。我遇到过这种情况,组混在一起,这会破坏并增加不安全性。
4/ 举例来说,FreeIpa Ldap 默认 uid/gid 范围可以超过数百万。