Всем доброго дня!
Есть база пользователей в OpenLDAP. Поднял почту (Exim + LDAP). Хочу прикрутить к уже имеющимся учетным записям почтовые ящики.Структура пользователя вот такая:
dn: uid=Admin,ou=users,dc=appri,dc=ru
objectClass: account
objectClass: posixAccount
objectClass: sambaSamAccount
cn: Admin
uid: Admin
uidNumber: 10001
gidNumber: 10001
homeDirectory: /mnt/data/homes/Admin
loginShell: /usr/sbin/nologin
gecos: Admin
description: User account
userPassword: {SSHA}DxA0i4Y3vIh/MXhLaGReT5waVPlVfVy+
sambaSID: S-1-5-21-2256578743-2313579320-1201635769-1001
displayName: Admin
sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000
000000
sambaAcctFlags: [U ]
sambaPwdMustChange: 2147483647
sambaPwdCanChange: 0
sambaNTPassword: B1D9FEB6F87604512CED9E9D0AAADE7D
sambaPwdLastSet: 1291976798Хочу добавить вот такую схему:
#$Id: mail.schema,v 1.4 2003/06/12 14:05:09 mrsam Exp $
# fr33manattributetype ( 1.3.6.1.4.1.7914.1.2.1.12 NAME 'mailBoxStatus'
DESC 'The status of a user account: active, noaccess, disabled, deleted'
EQUALITY caseIgnoreIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )attributetype ( 1.3.6.1.4.1.7914.1.2.1.3 NAME 'mailBoxStore'
DESC 'Path to the maildir/mbox on the mail system'
EQUALITY caseExactIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )attributetype ( 1.3.6.1.4.1.7914.1.2.1.4 NAME 'mailDirectory'
DESC 'Path to the mail system directory'
EQUALITY caseExactIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )attributetype ( 1.3.6.1.4.1.7914.1.2.1.15 NAME 'mailBoxQuota'
DESC 'The size of space the user can have until further messages get bounced.'
EQUALITY integerMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )objectclass ( 1.3.6.1.4.1.10018.1.2.1 NAME 'mailAccount' SUP top AUXILIARY
DESC 'Mail account object'
MUST ( mail $ mailBoxStore $ mailDirectory )
MAY ( mailBoxQuota $ mailBoxStore ) )Из начально схема была не моя, я лишь переделал под себя. Читал хэндбук по OpenLDAP. Есть некоторые непонятные для меня вещи:
1. Как выбирать идентификатор объекта (1.3.6.1.4.1.7914.1.2.1.12)?
2. Хочу чтобы mailAccount был дополнением для posixAccount. У меня вроде бы не так.Посоветуйте как решить эти проблемы. За ранее всем спасибо.
1) OID нужно регистрировать прямо на сайте какого-нить ответственного регистратора. Если хочешь официально застолбить свои атрибуты и классы. А вообще если по простому можно просто продолжать OIDы которые уже есть, писать свои хоть от балды, если не рассчитывать на официальный статус своих схем и не бояться проблем с совместимостью, потому что они однажды продублироваться могут при такой неофициальщине.2) AUXILARY - значит подрубаемый класс. Т.е. он не может быть один для объекта, но к другому классу типа STRUCTURAL может быть добавлен. У тебя класс как раз AUXILARY. То что тебе и нужно.
Странно, что в этом классе дублируются атрибуты MUST и MAY:
MUST ( mail $ mailBoxStore $ mailDirectory )
MAY ( mailBoxQuota $ mailBoxStore ) )
Про OID все ясно. LDAP сервер локальный, поэтому отбалды подходит.mailBoxStore - Это просто опечатка))))
Спасибо большое за разъяснение.
PS. А если я укажу SUP posixAccount, то он подключится только к posixAccount?
>если я укажу SUP posixAccount, то он подключится только к posixAccount?В таком случае произойдёт наследование атрибутов класса posixaccount классом mailaccount.
Т.е. Тебе уже не нужно будет в объекте указывать оба класса. Достаточно будет указать mailaccount, чтобы получить право указывать так же и любые атрибуты posixaccount, но наследуются и обязанности, т.е. те атрибуты, которые были обязательны для posixaccount будут обязательны и для наследника - mailaccount.
Честно говоря, я бы не стал так делать. Потом можно будет легко запутаться.
> Честно говоря, я бы не стал так делать. Потом можно будет легко
> запутаться.Теперь понятно стало. Я так не буду делать. Мне достаточно внести пару аттрибутов, так что AUXILIARY - то что надо.
Огромное спасибо за помощь)))
Пожалуйста :-)