2016-07-04 262 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) 
相關問題