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

问题描述:

我想修改我的openldap架构以使memberUid不区分大小写。 展望/etc/ldap/slapd.d/cn=config/cn=schema/cn={2}nis.ldif:将openldap中的memberUid属性修改为不区分大小写

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

我用,而不是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) 
+0

感谢您的回复。我得到了“没有全球优势知识”的错误。我必须为dn或相关的东西有错误的语法,但我不知道,也找不到任何示例。 – Ryan

+0

@Ryan Lol,当然,我没有关注DN;)你应该使用的DN是:cn = {2} nis,cn = schema,cn = config'。我编辑了我的答案;) – Esteban