使用ldapmodify为LDAP条目添加gid属性时遇未定义属性类型错误
解决LDAP添加gid属性报错:Undefined attribute type (17)
你碰到的问题根源其实很清晰:organizationalUnit 对象类本身并不包含 gid 属性,所以直接给ou=Users条目添加这个属性,LDAP服务器会判定这是未定义的属性类型,从而抛出错误。
下面给你两种可行的解决思路:
思路1:改用标准支持组ID的对象类
如果你的需求是让这个条目具备组ID相关属性,建议给条目添加posixGroup对象类(LDAP标准中,组ID对应的属性是gidNumber,而非你写的gid)。修改你的modify.ldif文件如下:
dn: ou=Users,dc=itau,dc=co changetype: modify add: objectClass objectClass: posixGroup - add: gidNumber gidNumber: 20000
然后重新执行ldapmodify命令:
ldapmodify -x -D "cn=admin,dc=itau,dc=co" -w <PASSWORD> -H ldap:// -f modify.ldif
注意:LDIF文件中的
-是多操作分隔符,必须单独占一行,用来区分“添加对象类”和“添加属性”这两个独立操作。
思路2:自定义属性与对象类(不推荐,除非特殊需求)
如果你坚持要使用gid这个自定义属性,需要先在LDAP服务器的schema中定义对应的属性类型,再创建包含该属性的自定义对象类,最后才能给目标条目添加这个属性。不过这种方式会增加目录结构的复杂度,一般不建议采用,除非你有特定的业务场景必须这么做。
额外提醒
LDAP的属性和对象类是严格遵循schema规则的,不能随意给某个对象类添加它不支持的属性。organizationalUnit是用于组织单元的基础对象类,仅包含ou、description等少量核心属性;而组相关的ID属性,是由posixGroup这类面向账号/组管理的对象类提供的。
内容的提问来源于stack exchange,提问作者Lemark




