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

ldap: Кастомные атрибуты записей

 


0

1

Всем привет!

Хочется записывать в таком формате:

dn: cn=login@test.example.ru,ou=access,dc=example,dc=ru
objectClass: top
cn: login@test.example.ru
uid: login
domain: test.example.ru
developers: 1

Нужно объявить актрибуты domain и developers. Помню раньше реализовал это через добавление objectClass и атрибутТайпов к нему, но сейчас не получается. Сейчас пробую добавить просто атрибуты, без класса таким образом:

access.ldif

dn: cn=access,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: access
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.6
 NAME 'domain'
 DESC 'Domain name for access levels'
 EQUALITY caseExactMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.42.2.27.4.1.7
 NAME 'developers'
 DESC 'Developers name for access levels'
 EQUALITY caseExactMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )

И командой:

ldapadd -x -D "cn=admin,dc=example,dc=ru" -W -f access.ldif

Ошибка:

adding new entry "cn=access,cn=schema,cn=config"
ldap_add: Insufficient access (50)

До этого делал на FreeBSD, там через slapd.conf подключал schema, а в кастомной схеме указывал класс и нужные атрибуты.

Перешел на Debian, а тут всё хранится в /etc/ldap/slapd.d/* Пробовал через slaptest создавать файл ldif, но в директории, в которую указывал всё класть, не появлялся нужный ldif.

Заранее спасибо за помощь!

А ты схему-то модифицировал, которая в конфиге подсасывается?

blind_oracle ★★★★★
()

ldapadd -x -D «cn=admin,dc=example,dc=ru» -W -f access.ldif

Кто вам сказал, что этот DN имеет право вносить изменения в cn=config,cn=schema,*? O_o

Правильно - никто. О чём openldap вам и сообщает.

Самый простой способ, раз уж вы не понимаете, что делаете - это конвертнуть правильно настроенный вами «старый» slapd.conf в slapd.d

http://www.zytrax.com/books/ldap/ch6/slapd-config.html#convert

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

А ты схему-то модифицировал, которая в конфиге подсасывается?

Учтони, пожалуйста, не совсем понял вопроса

Кто вам сказал, что этот DN имеет право вносить изменения в cn=config,cn=schema,*? O_o

Интернеты же, не сам уж точно придумал %)

Самый простой способ, раз уж вы не понимаете, что делаете - это конвертнуть правильно настроенный вами «старый» slapd.conf в slapd.d

Эх если бы я знал, что так получится, сохранил бы старый конфиг. Думал опять в два счета замучу :)

-D"cn=admin,cn=config", не?

Сейчас попробую, спасибо за совет!

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

-D"cn=admin,cn=config", не?

ldap_bind: Invalid credentials (49)

И я даже догадываюсь из-за чего это может быть - записи «cn=admin,cn=config» нет, он просит пароль от фиг знает чего, не?

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

надо через сасл подключаться. убери -x

Всё равно требует пароль, ввожу от «cn=admin,dc=example,dc=ru» и понятное дело не подходит.

Может, надо сначала установить пароль для «cn=admin,cn=config» каким-то образом в /etc/ldap/slapd.d/*?

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

под рукой нет ничего попробовать, а склероз что-то подсказывает, что эта запись, типа, встроенная что-ли.
и пароль к ней ты задаешь как раз при создании дерева. как быть потом, если потерял/забыл/етц - не знаю..

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

Всё равно требует пароль

Вы должны его задать сначала, потому что прежде, чем делать, чтением документации вы не озаботились.

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

прежде, чем делать, чтением документации вы не озаботились.

Я не лентяй или попрошайка, столько уже перечитал, что голова кругом идёт! Сорри

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

Спасибо, дружище! По указанной ссылке нужная информация, добавил схему свою, теперь у меня

ldap_add: Object class violation (65)
        additional info: no structural object class provided
Я так рад, с этим буду сам уже разбираться!

И тебе zgen спасибо за помощь!

В общем всем спасибо, ребят :)

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

Ах я олень, objectClass: access забыл указать свой только что добавленный, сейчас должно быть всё гуд ;)

no_Bra1n
() автор топика

Вот у меня всё через жопу %)

ldap_add: Invalid syntax (21)
        additional info: objectClass: value #1 invalid per syntax
Строка на которую ругается:
objectClass: access
Такое ощущение, что схема не подключается.

/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}access.ldif

dn: cn={4}access
objectClass: olcSchemaConfig
cn: {4}access
olcAttributeTypes: {0}( 1.3.6.1.4.1.42.2.27.4.1.6 NAME 'domain' DESC 'Domain n
 ame for access levels'EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121
 .1.15 SINGLE-VALUE )
olcAttributeTypes: {1}( 1.3.6.1.4.1.42.2.27.4.1.7 NAME 'developers' DESC 'Deve
 lopers name for access levels'EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466
 .115.121.1.15 SINGLE-VALUE )
structuralObjectClass: olcSchemaConfig
entryUUID: b33afedc-3386-1031-96b6-41c770955326
creatorsName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
createTimestamp: 20120516093855Z
entryCSN: 20120516093855.944429Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20120516093855Z

Пните, пожалуйста, в нужную сторону что читать, не на общий ман только.

Хочется хотя бы кое-как самому разобраться, спасибо!

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

нет, как раз об этом там говорится как установить пароль для cn=admin,cn=config и засунуть свою схему

Только у ТС теперь новая проблема. 2ТС: Возможно, стоит указать атрибут olcObjectClasses в своей схеме?

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

для тех, кто в танке еще раз

У ТС теперь новая проблема. Исходная проблема с недостаточными правами уже решена

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

Вот так:

olcAttributeTypes: {0}( 1.3.6.1.4.1.42.2.27.4.1.6 NAME 'olcObjectClasses' DESC 'for access levels'EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121
 .1.15 SINGLE-VALUE )
А в ldif, который пытаюсь загрузить
dn: cn=radio@radio.example.ru,ou=access,dc=example,dc=ru
objectClass: top
objectClass: access
cn: radio@radio.example.ru
uid: radio
domain: radio.example.ru
Никаких значений атрибутов не надо добавлять?

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

Так примерно:

olcObjectClasses: ( 2.16.840.1.113730.3.2.2 NAME 'access' ...)

Погляди любой ldif любой схемы, там этот olcObjectClasses есть всегда.

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

Был бы ты девушкой, я бы тебя расцеловал :) Тем более с одного города ;) Спасибо, всё получилось. Описал класс, атрибуты доступные и запись добавилась!

no_Bra1n
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.