![无法从自定义架构中看到 objectClass](https://linux22.com/image/637121/%E6%97%A0%E6%B3%95%E4%BB%8E%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%B6%E6%9E%84%E4%B8%AD%E7%9C%8B%E5%88%B0%20objectClass.png)
我向我的 ldap 服务器添加了新架构,但当我尝试使用自定义 objectClass 和自定义属性创建条目时,它看不到我的自定义内容。这只是实验性的,所以 OID 并不重要。
我的 custom.schema.ldif 文件
dn: cn=deployment,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: deployment
olcAttributeTypes: ( 1000.1.1.1 NAME ( 'user' )
DESC 'Username of the deployer'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1000.1.1.2 NAME ( 'app' )
DESC 'Application name'
EQUALITY caseExactMatch
SUBSTR caseExactSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 1000.1.1.3 NAME ( 'port' )
DESC 'Port of the application'
EQUALITY integerMatch
ORDERING integerOrderingMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
olcAttributeTypes: ( 1000.1.1.4 NAME 'available'
DESC 'App is available'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
olcObjectClasses: ( 1000.2.1.1 NAME 'deploymentClass'
DESC 'Deployment class'
MUST ( user $ app $ port $ available )
STRUCTURAL )
然后我添加了它:
ldapadd -w123 -x -D "cn=admin,cn=config" -f custom.schema.ldif
重新启动服务器后,我尝试使用此 ldif 创建条目:
dn: ou=deployment,dc=las,dc=com
objectClass: organizationalUnit
ou: deployment
dn: cn=app1_user1,ou=deployment,dc=las,dc=com
objectClass: deploymentClass
cn: app1_user1
user: user1
app: app1
port: 8888
available: 0
尝试添加此内容后:
ldapadd -x -D "cn=admin,dc=las,dc=com" -w123 -f deployment.base.ldif -c
我得到:
adding new entry "cn=app1_user1,ou=deployment,dc=las,dc=com"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #0 invalid per syntax
尝试使用 LDAP 浏览器 (JXplorer) 探索 LDAP 目录后,我找不到我定义的任何属性或对象类。有人能帮帮我吗?
答案1
看起来您正在尝试为cn
您的 ldap 条目赋值,但您为该条目指定的 objectClasses 均不支持使用 cn。
您可以尝试改变您的模式,也可以改变条目本身。
dn: app=app1+user=user1,ou=deployment,dc=las,dc=com
objectClass: deploymentClass
user: user1
app: app1
port: 8888
available: 0
或者,如果您core.schema
使用memberOf overlay
或者您nis.schema
也rfc2307bis.schema
可以在不添加任何额外模式的情况下酿造一些东西。
dn: cn=app1+uid=user1,ou=deployment,dc=las,dc=com
objectClass: ipService
objectClass: uidObect
uid: user1
cn: app1
ipServicePort: 8888
ipServiceProtocol: TCP
dn: cn=available-deployments,ou=deployment,dc=las,dc=com
objectClass: groupOfNames
cn: available-deployments
member: cn=app1+uid=user1,ou=deployment,dc=las,dc=com