将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)
感谢您的回复。我得到了“没有全球优势知识”的错误。我必须为dn或相关的东西有错误的语法,但我不知道,也找不到任何示例。 – Ryan
@Ryan Lol,当然,我没有关注DN;)你应该使用的DN是:cn = {2} nis,cn = schema,cn = config'。我编辑了我的答案;) – Esteban