LINUX.ORG.RU
решено ФорумAdmin

не получается добавить новый атрибут пользователю в ldap.

 , ldapmodify, ,


0

1

пытаюсь добавить новый атирибут пользователю через ldapmodify:

ldapmodify -x -w 'passwd' -D 'cn=admin,dc=example,dc=com' -f test.ldif

содержимое tets.ldif:

dn: uid=user,ou=people,dc=example,dc=com
changetype: modify
add: uniquemember
uniquemember: 

в результате получаю ошибку:

modifying entry "uid=user,ou=people,dc=example,dc=com"
ldap_modify: Object class violation (65)
        additional info: attribute 'uniqueMember' not allowed

Что делаю не так? Может предварительно артибуд unicuemember надо еще где-то в ладап зарегистрировать? Как сделать чтобы этот атрибут всем пользователям привязывался?

атрибут unicuemember нужен для owncloud без него не возможно пользователей к группам привязывать средствами самого owncloud.

uniqueMember — атрибут объектного класса groupOfUniqueNames. Вот так должно работать:

dn: uid=user,ou=people,dc=example,dc=com
changetype: modify
add: objectClass
objectClass: groupOfUniqueNames
add: uniqueMember
uniqueMember: <value>
geladil
()
Последнее исправление: geladil (всего исправлений: 2)
Ответ на: комментарий от Acceptor

Насколько я знаю, в ldif нет механизма для того, чтобы сразу всем записям добавить какой-то атрибут. Но всегда можно заскриптовать.

geladil
()
Последнее исправление: geladil (всего исправлений: 1)
Ответ на: комментарий от zgen

Спасибо, это я сделал, кстати все-равно получил ошибку:

modifying entry "dn: uid=user,ou=people,dc=example,dc=com"
ldap_modify: Object class violation (65)
        additional info: invalid structural object class chain (inetOrgPerson/groupOfUniqueNames)

я думал ты мне предложил какой-то ответ на вопрос:

А как сделать так чтобы этот атрибут автоматически всем новым пользователям присваивался?

Acceptor ★★
() автор топика
Ответ на: комментарий от Acceptor

А как сделать так чтобы этот атрибут автоматически всем новым пользователям присваивался?

Я откуда знаю, чем вы пользователей добавляете?

zgen ★★★★★
()
Ответ на: комментарий от zgen

временно ldap-admin-manager поставил, для удобства, но в дальнейшем буду через свои скрипты.

Но я уже осознал где ступил. Меня сейчас больше беспокоит ошибка:

invalid structural object class chain (inetOrgPerson/groupOfUniqueNames)

я так понял что groupOfUniqueNames не является структурным объектным классом. так что основной вопрос сводится сейчас к тому чтобы понять как (проверить что ldap не ошибается?) этот момент поправить? )

Acceptor ★★
() автор топика
Ответ на: комментарий от Acceptor

проверить что ldap не ошибается?

ldap не ошибается.

LDAP это не sql, иерархия классов и их атрибутов четко задана в схемах, вы не вольны добавлять что попало куда попало, у вас есть свобода только в рамках схемы.

Если вы прикидываетесь танком «а я вот хочу» - пишите свою схему, создавайте свой класс и определяйте сабклассы.

Но случаи «нужна своя схема» в 99.999% означают то, что вы не понимаете, что делаете, не знаете как это делать правильно и изобретаете велосипед из говна и палок.

Помочь вам нужно только узнав то, что за задачу вы хотите решить.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Но случаи «нужна своя схема» в 99.999% означают то, что вы не понимаете, что делаете, не знаете как это делать правильно и изобретаете велосипед из говна и палок.

Правильно подмечено, я не совсем понимаю что делаю, хотя понимаю какую это проблему должно решить. Собственно затем и спрашиваю, затем и эксперементирую, чтобы понять как делать правильно.

как я уже и писал в результате owncloud должен научиться привязывать пользователей из ldap к группам из ldap, сейчас из лога owncloud видно что у пользователя нет атрибута unicuemember, стало очевидным что его надо туда добавить.

Acceptor ★★
() автор топика
Ответ на: комментарий от Acceptor

видно что у пользователя нет атрибута unicuemember
стало очевидным что его надо туда добавить.

А я думаю, что этот атрибут должен быть у группы.

Знаете, кто из нас прав? :)

zgen ★★★★★
()
Ответ на: комментарий от zgen
ldapmodify -x -w 'passwd' -D 'cn=admin,dc=example,dc=com' -f test.ldif

test.ldif:

dn: cn=developers,ou=group,dc=example,dc=com
changetype: modify
add: objectClass
objectClass: groupOfUniqueNames

результат:

ldap_modify: Object class violation (65)
        additional info: invalid structural object class chain (posixGroup/groupOfUniqueNames)

Acceptor ★★
() автор топика
Последнее исправление: Acceptor (всего исправлений: 1)
Ответ на: комментарий от Acceptor

Первый ответ в гугле по тексту ошибки:

groupOfNames and posixGroup are both STRUCTURAL objectClasses.  An object
can only be one type of thing.  So, is it a posixGroup, or is it a
groupOfNames?  You need to decide.  Just like an object cannot be both a
tree and an ocean.  These are two distinct concepts.
Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Acceptor

Ну вы это, зачем все подряд пихать?

Вот вся запись:

dn: cn=manager,ou=groups,dc=example,dc=com
cn: manager
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=user1,ou=Users,dc=example,dc=com
uniquemember: uid=user2,ou=Users,dc=example,dc=com
uniquemember: uid=user3,ou=Users,dc=example,dc=com

Вот и все. Заметили - только 2 класса - top и groupOfUniqueNames

Спрашивается, что вы городите?

zgen ★★★★★
()
Ответ на: комментарий от zgen

да, так работает. + спасибо Pinkbyte за пояснение.

Хотя основная проблема с owncloud не решилась :))) Но это, видимо, уже другая тема.

Acceptor ★★
() автор топика
Последнее исправление: Acceptor (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.