修改openldap中的memberUid属性不区分大小写

Modify memberUid attribute in openldap to be case insensitive

我想修改我的 openldap 架构以使 memberUid 不区分大小写。 查看 /etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif:

dn: cn={2}nis
objectClass: olcSchemaConfig
cn: {2}nis
olcAttributeTypes: {10}( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseExac
 tIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.12
 1.1.26 )

我尝试了以下方法:

$ ldapmodify -h localhost -x
dn: cn={2}nis           
changetype: modify
replace: olcAttributeTypes
olcAttributeTypes: {10}( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )

但是我得到了以下错误:

modifying entry "cn={2}nis" ldap_modify: Server is unwilling to perform (53) additional info: no global superior knowledge

我也尝试使用 objectClass 而不是 olcAttributeTypes,但收到以下信息:

modifying entry "cn={2}nis" ldap_modify: Invalid syntax (21) additional info: objectClass: value #0 invalid per syntax

有人能指出我正确的方向吗?我找到了很多关于添加新属性和对象类的文档,但关于修改现有架构的文档却很少。

我在这里谈论的是常见的 ldap 操作,调整配置时可能会有所不同。

我从未尝试过只修改一组多值属性中的一个值,在这种情况下我所做的是删除我要修改的值并添加新值:

类似于:

dn: cn={2}nis,cn=schema,cn=config
changetype: modify
delete: olcAttributeTypes
olcAttributeTypes: {10}( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseExactIA5Match SUBSTR caseExactIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
-
add: olcAttributeTypes
olcAttributeTypes: {10}( 1.3.6.1.1.1.1.12 NAME 'memberUid' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )