我有一个用户定义的模式,它将被添加到现有的 LDAP 服务器中。它的 ldif 格式为:
dn:cn=用户控制,cn=架构,cn=配置 对象类:olcSchemaConfig cn: 用户控制 olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.1 NAME‘性别属性’ DESC ‘性别’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.2 名称‘dobAttr’ DESC '出生日期' 平等 generalizedTimeMatch 排序 generalizedTimeOrderingMatch 语法 1.3.6.1.4.1.1466.115.121.1.24 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.3 NAME‘语言属性’ DESC ‘已知语言’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 单值 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.4 名称 'mTongueAttr' DESC 'motherTongue' 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 单值 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.5 NAME '国籍属性 DESC ‘国籍’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.6 名称‘worksAtAttr’ 降序排列‘worksAt’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.7 NAME‘资格属性’ DESC ‘资格’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.8 NAME 'schoolAttr' DESC ‘学校’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.9 NAME 'collegeAttr' DESC ‘大学’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.10 NAME '地址属性' DESC ‘地址’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) olcAttributeTypes:(1.3.6.1.4.1.xxxxx.1.1.11 NAME 'zipAttr' DESC 'pinCode' 语法 1.3.6.1.4.1.1466.115.121.1.27 ) 对象类 ( 1.3.6.1.4.1.xxxxx.1.2.1 NAME‘用户控件’ DESC 'RFC2798:新的定制架构' SUP 组织人员 结构 可能 ( 性别 $ 出生日期 $ 已知语言 $ 母语 $ 国籍 $ 工作地点 $ 资格 $ 学校 $ 大学 $ 地址 $ 邮政编码 $ 联系方式 $ 感兴趣 ) )
.schema 格式为
# 用户控制.架构 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.1 NAME‘性别属性’ DESC ‘性别’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.2 名称‘dobAttr’ DESC '出生日期' 平等 generalizedTimeMatch 排序 generalizedTimeOrderingMatch 语法 1.3.6.1.4.1.1466.115.121.1.24 ) 属性类型(1.3.6.1.4.1.xxxxx.1.1.3 NAME‘语言属性’ DESC ‘已知语言’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 单值 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.4 名称 'mTongueAttr' DESC 'motherTongue' 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 单值 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.5 NAME '国籍属性 DESC ‘国籍’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.6 名称‘worksAtAttr’ 降序排列‘worksAt’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.7 NAME‘资格属性’ DESC ‘资格’ 平等案例忽略匹配 SUBSTR 大小写忽略子字符串匹配 语法 1.3.6.1.4.1.1466.115.121.1.15 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.8 NAME 'schoolAttr' DESC ‘学校’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.9 NAME 'collegeAttr' DESC ‘大学’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.10 NAME '地址属性' DESC ‘地址’ 语法 1.3.6.1.4.1.1466.115.121.1.15 ) 属性类型 ( 1.3.6.1.4.1.xxxxx.1.1.11 NAME 'zipAttr' DESC 'pinCode' 语法 1.3.6.1.4.1.1466.115.121.1.27 ) 对象类 ( 1.3.6.1.4.1.xxxxx.1.2.1 NAME‘用户控件’ DESC 'RFC2798:新的定制架构' SUP 组织人员 结构 可能 ( 性别 $ 出生日期 $ 已知语言 $ 母语 $ 国籍 $ 工作地点 $ 资格 $ 学校 $ 大学 $ 地址 $ 邮政编码 $ 联系方式 $ 感兴趣 ) )
我尝试使用代码将 ldif 文件添加到 LDAP 中
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/userControl.ldif
但我收到了一个错误
ldapadd:格式无效(第 5 行)条目:“cn=userControl,cn=schema,cn=config”
我已经检查过解决方案并应用了它,但毫无用处。我仍然收到错误。我已将我的架构与其他架构进行了比较,并将 ldif 文件与其他 ldif 文件进行了比较,但没有发现任何错误。请有人帮助我解决这个问题。
我的操作系统是 Ubuntu 12.04 LTS。是否需要添加
# 全局配置设置 dn: cn=config 对象类:olcGlobal cn:配置
在 ldif 文件中。我试过了。但我也遇到了同样的错误。
答案1
坦率地说,您的整个模式一团糟。
- 要在您的模式中定义
objectClass
,您需要一行olcObjectClasses:
,:
末尾带有。 - 属性列表必须是
NAME
条目的列表,而不是DESC
,因此它需要是MAY ( genderAttr $ dobAttr
等。 NAME 'nationalityAttr
错过收盘'
- 是
zipAttr
邮政编码还是 PIN 码? contactNumber
并且interestedIn
根本没有定义但在行中被引用olcObjectClasses
。- 任何属性后面的后缀
Attr
都是无用的。很明显它是一个属性,否则它应该是什么? - 条目之间的空行无效。
如果您解决了所有这些问题,您最终会得到类似下面的文件(仍然缺少联系人和兴趣),该文件很容易导入(88888
用您的私人 OID 号码替换)。
dn: cn=userControl,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: userControl
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.1
NAME 'genderAttr'
DESC 'gender'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.2
NAME 'dobAttr'
DESC 'dateOfBirth'
EQUALITY generalizedTimeMatch
ORDERING generalizedTimeOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
olcAttributeTypes: (1.3.6.1.4.1.88888.1.1.3
NAME 'languageAttr'
DESC 'languages known'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.4
NAME 'mTongueAttr'
DESC 'motherTongue'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.5
NAME 'nationalityAttr'
DESC 'nationality'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.6
NAME 'worksAtAttr'
DESC 'worksAt'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.7
NAME 'qualificationAttr'
DESC 'qualification'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.8
NAME 'schoolAttr'
DESC 'school'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.9
NAME 'collegeAttr'
DESC 'college'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.10
NAME 'addressAttr'
DESC 'address'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1.3.6.1.4.1.88888.1.1.11
NAME 'zipAttr'
DESC 'pinCode'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
olcObjectClasses: ( 1.3.6.1.4.1.88888.1.2.1
NAME 'userControl'
DESC 'RFC2798: New Customized Schema'
SUP organizationalPerson
STRUCTURAL
MAY (
genderAttr $ dobAttr $ languageAttr $ mTongueAttr $ nationalityAttr $ worksAtAttr $ qualificationAttr $ schoolAttr $ collegeAttr $ addressAttr $ zipAttr)
)