LINUX.ORG.RU

Импорт в LDAP из мозилы


0

1

выгрузил адресную книгу в ldif из мозилы, минимально установил OpenLDAP и phpLDAPadmin, через последний записи добавляются в мою структуру

ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif

# cat /etc/ldap/schema/db.ldif
dn: cn=module,cn=configobjectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: back_hdb
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcSuffix: dc=ДОМЕН,dc=ru
olcDbDirectory: /var/lib/ldap
olcRootDN: cn=admin,dc=ДОМЕН,dc=ru
olcRootPW: {MD5}uDL7KrKQsL649HERayuikw==
olcDbConfig: set_cachesize 0 2097152 0
olcDbConfig: set_lk_max_objects 1500
olcDbConfig: set_lk_max_locks 1500
olcDbConfig: set_lk_max_lockers 1500
olcDbIndex: objectClass eq
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcAccess: to attrs=userPassword by dn="cn=admin,dc=ДОМЕН,dc=ru" write by anonymous auth by self write by * none
olcAccess: to attrs=shadowLastChange by self write by * read
olcAccess: to dn.base="" by * read
olcAccess: to dn.subtree="" by * read
olcAccess: to * by dn="cn=admin,dc=ДОМЕН,dc=ru" write by * read

хотелось бы теперь импортировать, но через phpLDAPadmin валится ошибка

Не удалось добавить объект на LDAP-сервер.
Сообщение LDAP:	Invalid syntax
Номер ошибки:	0x15 (LDAP_INVALID_SYNTAX)
Описание:	An invalid attribute value was specified.
	импорт LDIF
Could not add object cn=Аренда,mail=arenda@ДОМЕН.ru
Сообщение LDAP:	Invalid syntax
Номер ошибки:	0x15 (LDAP_INVALID_SYNTAX)
Описание:	An invalid attribute value was specified.
в логах
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 fd=14 ACCEPT from IP=127.0.0.1:36370 (IP=0.0.0.0:389)
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=0 BIND dn="cn=admin,dc=ДОМЕН,dc=ru" method=128
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=0 BIND dn="cn=admin,dc=ДОМЕН,dc=ru" mech=SIMPLE ssf=0
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=0 RESULT tag=97 err=0 text=
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=1 SRCH base="dc=ДОМЕН,dc=ru" scope=2 deref=3 filter="(|(mail=arenda@ДОМЕН.ru))"
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=1 SRCH attr=mail
Mar  6 15:17:33 proxy slapd[25386]: <= bdb_equality_candidates: (mail) not indexed
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=2 ADD dn="cn=Аренда,mail=arenda@ДОМЕН.ru"
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=2 RESULT tag=105 err=21 text=modifytimestamp: value #0 invalid per syntax
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=3 SRCH base="" scope=0 deref=3 filter="(&(objectClass=*))"
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=3 SRCH attr=namingContexts subschemaSubentry altServer supportedExtension supportedControl supportedSASLMechanisms supportedLDAPVersion currentTime dsServiceName defaultNamingContext schemaNamingContext configurationNamingContext rootDomainNamingContext supportedLDAPPolicies highestCommittedUSN dnsHostName ldapServiceName serverName supportedCapabilities changeLog tlsAvailableCipherSuites tlsImplementationVersion supportedSASLMechanisms dsaVersion myAccessPoint dseType + *
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=3 SEARCH RESULT tag=101 err=0 nentries=1 text=
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=4 SRCH base="cn=admin,dc=ДОМЕН,dc=ru" scope=0 deref=0 filter="(&(objectClass=*))"
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=4 SRCH attr=* +
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=4 SEARCH RESULT tag=101 err=0 nentries=1 text=
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 op=5 UNBIND
Mar  6 15:17:33 proxy slapd[25386]: conn=1069 fd=14 closed
вот так выглядит книга из мозилы
dn:: Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: mozillaAbPersonAlpha
cn:: 0JDRgNC10L3QtNCw
mail: arenda@ДОМЕН.ru
modifytimestamp: 1316076284

что необходимо сделать, чтобы в ручную не загружать? не совсем понимаю кучу этих атрибутов (

objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: mozillaAbPersonAlpha

Схема есть для всех классов объектов?

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

dexpl

нет, только inetOrgPerson

# ls /etc/ldap/schema/
collective.schema  core.schema    db.ldif          inetorgperson.ldif    misc.schema              nis.schema       pmi.schema
corba.schema       cosine.ldif    duaconf.schema   inetorgperson.schema  mozillaOrgPerson.schema  openldap.ldif    ppolicy.schema
core.ldif          cosine.schema  dyngroup.schema  java.schema           nis.ldif                 openldap.schema  README
удалил все лишние, попробовал загрузить, в логах таже ошибка
slapd[25386]: <= bdb_equality_candidates: (mail) not indexed

wolverin ★★ ()
Ответ на: комментарий от wolverin
/etc/ldap/schema# slapindex

WARNING!
Runnig as root!
There's a fair chance slapd will fail to start.
Check file permissions!

:/etc/ldap/schema# ls -l /var/lib/ldap/
итого 1624
-rw-r--r-- 1 openldap openldap     4096 Мар  6 16:59 alock
-rw------- 1 openldap openldap    24576 Мар  6 16:59 __db.001
-rw------- 1 openldap openldap   376832 Мар  6 16:59 __db.002
-rw------- 1 openldap openldap  2629632 Мар  6 16:59 __db.003
-rw------- 1 openldap openldap   163840 Мар  6 16:59 __db.004
-rw------- 1 openldap openldap  1277952 Мар  6 16:59 __db.005
-rw------- 1 openldap openldap    32768 Мар  6 16:59 __db.006
-rw-r--r-- 1 openldap openldap       96 Сен 17 15:25 DB_CONFIG
-rw------- 1 openldap openldap     8192 Мар  6 14:49 dn2id.bdb
-rw------- 1 openldap openldap    32768 Мар  6 14:49 id2entry.bdb
-rw------- 1 openldap openldap 10485760 Мар  6 16:59 log.0000000001
-rw------- 1 openldap openldap     8192 Мар  6 16:59 objectClass.bdb

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

эту ошибку поборол

slapd[25386]: <= bdb_equality_candidates: (mail) not indexed
добавил
/etc/openldap/slapd.d/cn=config/olcDatabase={1}bdb.ldif
olcDbIndex: mail eq,pres,sub
только импорт все равно не идет ((

Mar  6 17:44:02 proxy slapd[29248]: conn=1003 fd=14 ACCEPT from IP=127.0.0.1:33045 (IP=0.0.0.0:389)
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=0 BIND dn="cn=admin,dc=ДОМЕН,dc=ru" method=128
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=0 BIND dn="cn=admin,dc=ДОМЕН,dc=ru" mech=SIMPLE ssf=0
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=0 RESULT tag=97 err=0 text=
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=1 SRCH base="dc=ДОМЕН,dc=ru" scope=2 deref=3 filter="(|(mail=arenda@ДОМЕН.ru))"
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=1 SRCH attr=mail
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=2 ADD dn="cn=Аренда,mail=arenda@ДОМЕН.ru"
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=2 RESULT tag=105 err=53 text=no global superior knowledge
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=3 SRCH base="" scope=0 deref=3 filter="(&(objectClass=*))"
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=3 SRCH attr=namingContexts subschemaSubentry altServer supportedExtension supportedControl supportedSASLMechanisms supportedLDAPVersion currentTime dsServiceName defaultNamingContext schemaNamingContext configurationNamingContext rootDomainNamingContext supportedLDAPPolicies highestCommittedUSN dnsHostName ldapServiceName serverName supportedCapabilities changeLog tlsAvailableCipherSuites tlsImplementationVersion supportedSASLMechanisms dsaVersion myAccessPoint dseType + *
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=3 SEARCH RESULT tag=101 err=0 nentries=1 text=
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=4 SRCH base="cn=admin,dc=ДОМЕН,dc=ru" scope=0 deref=0 filter="(&(objectClass=*))"
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=4 SRCH attr=* +
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=4 SEARCH RESULT tag=101 err=0 nentries=1 text=
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 op=5 UNBIND
Mar  6 17:44:02 proxy slapd[29248]: conn=1003 fd=14 closed
Mar  6 17:44:55 proxy slapd[29248]: conn=1004 fd=14 ACCEPT from IP=127.0.0.1:33322 (IP=0.0.0.0:389)
Mar  6 17:44:55 proxy slapd[29248]: conn=1004 op=0 BIND dn="cn=admin,dc=ДОМЕН,dc=ru" method=128
Mar  6 17:44:55 proxy slapd[29248]: conn=1004 op=0 BIND dn="cn=admin,dc=ДОМЕН,dc=ru" mech=SIMPLE ssf=0
Mar  6 17:44:55 proxy slapd[29248]: conn=1004 op=0 RESULT tag=97 err=0 text=
Mar  6 17:44:55 proxy slapd[29248]: conn=1004 op=1 SRCH base="dc=ДОМЕН,dc=ru" scope=2 deref=3 filter="(|(mail=arenda@ДОМЕН.ru))"

пытаюсь импортировать вот такие строки

dn:: Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==
objectclass: inetOrgPerson
cn:: 0JDRgNC10L3QtNCw
mail: arenda@ДОМЕН.ru

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

и в пхпадмине другая ошибка теперь

Не удалось добавить объект на LDAP-сервер.
Сообщение LDAP:	Server is unwilling to perform
Номер ошибки:	0x35 (LDAP_UNWILLING_TO_PERFORM)
Описание:	The LDAP server refused to perform the operation.
	импорт LDIF
Could not add object cn=Аренда,mail=arenda@factorial.ru
Сообщение LDAP:	Server is unwilling to perform
Номер ошибки:	0x35 (LDAP_UNWILLING_TO_PERFORM)
Описание:	The LDAP server refused to perform the operation.

wolverin ★★ ()

У тебя slapd сконфигрурирован по дефолту на хранение всего из собственной БД. Следовательно от того, что у тебя все файлики схем лежат в нужном месте ничего не гарантирует. Добавляешь в рантайме схемы прямо в ldap и потом импортируешь свои контакты.

Список всех рабочих схем:

ldapsearch -Y EXTERNAL -H ldapi:/// -s base -b "cn=subschema" objectclasses

Как что и почему объяснять сложно и лень, вот мануал: http://www.zytrax.com/books/ldap/ch6/slapd-config.html#use-schemas

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

gh0stwizard

добавлял базы таким способом

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
правда не знаю добавились эти схемы или нет
ldapsearch -Y EXTERNAL -H ldapi:/// -s base -b "cn=subschema" objectclasses

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
эта команда выдает кучу данных, что нужно из нее смотреть?

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

наверное все же добавились

# ls -l /etc/ldap/slapd.d/cn=config/cn=schema/
итого 44
-rw------- 1 openldap openldap 15474 Сен 17 15:25 cn={0}core.ldif
-rw------- 1 openldap openldap 11308 Сен 17 15:25 cn={1}cosine.ldif
-rw------- 1 openldap openldap  6438 Сен 17 15:25 cn={2}nis.ldif
-rw------- 1 openldap openldap  2802 Сен 17 15:25 cn={3}inetorgperson.ldif
-rw------- 1 openldap openldap  1311 Сен 17 15:28 cn={4}openldap.ldif
но импорт все равно не идет

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

вроде так к моей запрос должен быть

# ldapsearch -Y EXTERNAL -H ldapi:/// -s base -b "dc=ДОМЕН,dc=ru" 'objectclass=*'
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
# extended LDIF
#
# LDAPv3
# base <dc=ДОМЕН,dc=ru> with scope baseObject
# filter: objectclass=*
# requesting: ALL
#

# ДОМЕН.ru
dn: dc=ДОМЕН,dc=ru
objectClass: top
objectClass: dcObject
objectClass: organization
o: OOO ДОМЕН
dc: ДОМЕН

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

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

gh0stwizard

вот так выглядит одна запись из ldif файл мозилы

dn:: Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: mozillaAbPersonAlpha
cn:: 0JDRgNC10L3QtNCw
mail: arenda@ДОМЕН.ru
modifytimestamp: 1316076284
что нужно добавить в нее, чтобы она смогла добавиться в мою базу?

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

У тебя в записях есть класс mozillaAbPersonAlpha. Для того чтобы ldap мог работать с таким классом он должен знать описание данного класса. Описание классов и полей задается в схемах. Схема может содержать ссылки на другие классы и объекты из других схем, т.е зависит от них. Схема может описывать как один класс, объект и т.д, так и множество. Обычно схема представляется в виде файлов .ldif и .schema

Тебе надо найти схему от мозиллы, в которой описывается как минимум один нужный тебе класс mozillaAbPersonAlpha. Файлы скорей всего есть в поставке дистрибутива ПО или на оф. сайте. Также об этом должно быть оговорено в документации самой программы.

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

вот варианты что пробовал

dc: dc=ДОМЕН,dc=ru
dn:: Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==
objectclass: inetOrgPerson
cn:: 0JDRgNC10L3QtNCw
mail: arenda@ДОМЕН.ru

RESULT tag=105 err=53 text=no global superior knowledge

Не удалось добавить объект на LDAP-сервер.
Сообщение LDAP:	Server is unwilling to perform
Номер ошибки:	0x35 (LDAP_UNWILLING_TO_PERFORM)
Описание:	The LDAP server refused to perform the operation.
	импорт LDIF
Could not add object cn=Аренда,mail=arenda@ДОМЕН.ru
Сообщение LDAP:	Server is unwilling to perform
Номер ошибки:	0x35 (LDAP_UNWILLING_TO_PERFORM)
Описание:	The LDAP server refused to perform the operation.
и так
dc: dc=ДОМЕН,dc=ru
dn:: Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==
objectclass: inetOrgPerson
cn:: 0JDRgNC10L3QtNCw
mail: arenda@ДОМЕН.ru

LDIF Import Parse Error

Описание:	A valid dn line is required []
строка:	5
Data:
 	dc: dc=ДОМЕН,dc=ru
 	dn:: Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==
 	objectclass: inetOrgPerson
 	cn:: 0JDRgNC10L3QtNCw
 	mail: arenda@ДОМЕН.ru
в последнем случае в логах вообще не вижу чтобы ошибка какая то была, только в пхпадмине

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

Не таже. Во-первых, organizationalPerson и inetOrgPerson два класса одинаковой сущности, при этом вроде inetOrgPerson включает в себя первый. При вставке записей где указаны два и более класса, которые не являются абстрактными ldap может ругнуться на глупый запрос.

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

Команду которую я тебе давал выводит список классов и атрибутов, загруженных в память ldap в настоящий момент.

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

Зачем тебе ldap если ты не понимаешь как он работает? Поле dn всегда является уникальным и имеет четкую нотацию. Поле_доступное_классу=Значение,Родительское_поле_1=Значение, Родительское_значение_2=Значение.

В твоем случае запись может быть такой: dn: cn=blabla,dc=Домен,dc=ru

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

gh0stwizard

по другому как сделать адресную книгу? в inetOrgPerson есть атрибут mail и имя? почему тогда нельзя один его использовать для импорта?

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

Ты хочешь по быстрому сделать себе записную книгу. Я тебе дал самый быстрый способ - загрузить схему от мозиллы. Сейчас ты пытаешься выкрутиться методом тыка и естественно у тебя ничего не получится. RTFM.

gh0stwizard ★★★★★ ()
Ответ на: комментарий от wolverin
dn: cn=Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==,dc=Домен,dc=ru
objectclass: inetOrgPerson
sn:: 0JDRgNC10L3QtNCw
mail: arenda@Домен.ru

RESULT tag=105 err=68 text=root DSE already exists

Сообщение LDAP:	Already exists
Номер ошибки:	0x44 (LDAP_ALREADY_EXISTS)
Описание:	The object already exists. Usually you are trying to create a new object on top of an existing one.

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

gh0stwizard

)) нашел

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/mozillaAbPersonAlpha.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=mozillaAbPersonAlpha,cn=schema,cn=config"

# ls -l /etc/ldap/slapd.d/cn=config/cn=schema/
итого 48
-rw------- 1 openldap openldap 15474 Сен 17 15:25 cn={0}core.ldif
-rw------- 1 openldap openldap 11308 Сен 17 15:25 cn={1}cosine.ldif
-rw------- 1 openldap openldap  6438 Сен 17 15:25 cn={2}nis.ldif
-rw------- 1 openldap openldap  2802 Сен 17 15:25 cn={3}inetorgperson.ldif
-rw------- 1 openldap openldap  1311 Сен 17 15:28 cn={4}openldap.ldif
-rw------- 1 openldap openldap  3878 Мар  7 10:44 cn={5}mozillaabpersonalpha.ldif
только все равно не добавляются записи
dn: cn=Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==,dc=Домен,dc=ru 
objectclass: inetOrgPerson 
sn:: 0JDRgNC10L3QtNCw 
mail: arenda@Домен.ru

Сообщение LDAP:	Already exists 
Номер ошибки:	0x44 (LDAP_ALREADY_EXISTS) 
Описание:	The object already exists. Usually you are trying to create a new object on top of an existing one.

SRCH attr=mail conn=1078 
SEARCH RESULT tag=101 err=0 nentries=0 text= conn=1078 op=2 ADD dn="" 
RESULT tag=105 err=68 text=root DSE already exists
SRCH base="" scope=0 deref=3 filter="(&(objectClass=*))"

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

а как удалить добавленную схему?

# ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn: cn=config

dn: cn=module{0},cn=config

dn: cn=schema,cn=config

dn: cn={0}core,cn=schema,cn=config

dn: cn={1}cosine,cn=schema,cn=config

dn: cn={2}nis,cn=schema,cn=config

dn: cn={3}inetorgperson,cn=schema,cn=config

dn: cn={4}openldap,cn=schema,cn=config

dn: cn={5}mozillaAbPersonAlpha,cn=schema,cn=config

dn: olcBackend={0}hdb,cn=config

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}hdb,cn=config

root@proxy:/etc/ldap/slapd.d/cn=config/cn=schema# ldapdelete -v 'cn={2}nis,cn=schema,cn=config' -Y EXTERNAL -H ldapi:///
ldap_initialize( ldapi:///??base )
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
deleting entry "cn={2}nis,cn=schema,cn=config"
ldap_delete: Server is unwilling to perform (53)

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

как я понял импортировать не получится, т.к. в строке из ldif файла мозилы строка

dn:: Y2490JDRgNC10L3QtNCwLG1haWw9YXJlbmRhQGZhY3RvcmlhbC5ydQ==

выглядит как

dn: cn=Аренда,mail=arenda@Домен.ru
как декодировать такую строку для правильной записи dn не знаю ((

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

решил проблему, написал скрипт по конвертации ldif файла из мозилы в подходящий для импорта через phpLdapAdmin

$ cat ./decode_ldif.sh
#!/bin/bash

path="путь до экспортированного файла из мозилы.ldif"
atr=""
nline=""
sdn="dc=Домен,dc=ru"
isn=0
ssn=""

while read line; do
    if [ "`expr match "$line" '.*\(modifytimestamp\)'`" != "" ]
        then continue
    fi
    if [ ${#line} = 1 ]
        then
        if [ $isn = 0 ]
            then echo $ssn
        fi
        isn=0
    fi
    if [ "`expr match "$line" '.*\(::\)'`" != "" ]
        then
        atr="`echo $line | cut -f 1 -d ':'`"
        nline=": `echo $line | cut -f 2 -d ' ' | base64 -d -i;`"
        nline="`echo $nline | cut -f 1 -d ','`"
        if [ $atr = "dn" ]
            then nline=$atr$nline","$sdn
            else
                if [[ $atr = "cn" && $isn = 0 ]]
                    then ssn="sn"$nline
                    else
                        if [ $atr = "sn" ]
                            then isn=1
                        fi
                fi
                nline=$atr$nline
        fi
        echo $nline
    else echo $line
    fi
done < "$path"

теперь загрузка проходит удачно ))

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