2016-07-04 266 views
0

我目前正在实施一个plddCheckModule库的OpenIDap版本2.4.14(版本不能更改)。在此期间,我想阅读LDAP数据库中的一些属性。其中一个属性称为pcpMinNumberLowerUpper,并保存最少数量的较低和/或较高字符。该属性应该是一个已经存在的objectClass的一部分,名为pwdPolicy,位于cn:schema之下,它已经具有其他一些属性,如pwdMaxAge等。ldapmodify提出属性类型:值#0无效每语法错误

我想使用ldapmodify终端命令为了添加属性到已经存在的LDAP数据库。我心中已经刚刚使用的命令如下所示:

ldapmodify -h localhost -p 389 -D "cn=Administrator,dc=<mydc>,dc=<mydc>..." -w "<mysecret>" -x -f pcp_attribute_upgrade.ldif 

相应的LDIF文件有以下内容:

dn: cn=schema 
changetype: modify 
add: attributetypes 
attributetypes: (1.3.6.1.4.1.42.2.27.8.1.18 NAME 'pcpMinNumberLowerUpper' DESC 'Minimum of upper or lower characters' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUED USAGE userApplications) 

现在,如果我执行上面的命令它提出了以下错误消息到终端输出:

ldap_start_tls: Protocol error (2) 
     additional info: unsupported extended operation 
modifying entry "cn=schema" 
ldap_modify: Invalid syntax (21) 
     additional info: attributetypes: value #0 invalid per syntax 

我已经尝试使用olcAttributeTypes而不是attributeTypes,但它没有帮助。任何帮助将是不错:-)提前

感谢, 弗洛

回答

0

在默认OpenLDAP的配置,架构修改通常你必须使用外部认证从本地的LDAP服务器root帐户:

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f pcp.ldif 

和pcp.ldif应该是:

dn: cn=schema,cn=config 
changetype: modify 
add: olcAttributetypes 
olcAttributetypes: (1.3.6.1.4.1.42.2.27.8.1.18 NAME 'pcpMinNumberLowerUpper' DESC 'Minimum of upper or lower characters' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE USAGE userApplications) 

(更改了dn,“attributeTypes”替换为“olcAttributetypes”和“SINGLE-VALUED”改为“单值”)

1

单值属性的关键词是单值,作为尝试的模式定义添加到OpenDJ LDAP目录服务器时报道:

提供的值“(1.3.6.1.4.1.42.2.27.8.1.18 NAME 'pcpMinNumberLowerUpper' DESC SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE- '上或下个字符的最小' VALUED USAGE userApplications)“无法解析为有效的属性类型 描述,因为它包含非法令牌“单值”

更改它如下,它将工作。

dn: cn=schema 
changetype: modify 
add: attributetypes 
attributetypes: (1.3.6.1.4.1.42.2.27.8.1.18 NAME 'pcpMinNumberLowerUpper' DESC 'Minimum of upper or lower characters' SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE USAGE userApplications) 
相关问题