Sergey wrote:
Тогда так:
dn: uid=joe,ou=People,dc=mylan,dc=net
changetype: modify
add: objectclass
objectclass: account
-
add: host
host: workA
host: workB
ldap_initialize( ldap://localhost )
Enter LDAP Password:
add objectclass:
account
add host:
apex.csu.ac.ru
modifying entry "uid=srg,ou=People,dc=csu,dc=ac,dc=ru"
ldapmodify: update failed: uid=srg,ou=People,dc=csu,dc=ac,dc=ru
ldap_modify: Object class violation (65)
additional info: invalid structural object class chain
(inetOrgPerson/account)
:-(
Есть такое дело - уже забыл. На сколько я помню, это началось с openldap
2.x - каждая запись может содержать только один структурный (structural)
класс. Таким образом, не прибегая к каким-либо уловкам, не удасться
создать запись содержащую одновременно класс account и inetOrgPerson,
потому что они оба структурные. Как я понял, стандартным решением
подразумевается заведение нескольких записей вместо одной - что-то вроде
uid=user,ou=peoples,o=org с objectclass inetOrgPerson и
uid=user,ou=accounts,o=org с objectclass account. Это решение, конечно,
нельзя назвать удобным, поэтому я предпочел иное - модифицировал все
схемы, поменяв STRUCTURAL на AUXILIARY, и создал собственный
единственный STRUCTURAL-класс, который использую во всех записях. Есть
еще один вариант - использование класса extensibleObject - запись с
таким классом может содержать любой атрибут без включения
соответсвующего класса.
--
Due to lack of disk space, this fortune database has been discontinued.