[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ldap and hosts



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.



Reply to: