[patch] LDIF-formatted schema file for OpenLDAP

Brian T Glenn <[email protected]> Tue, 17 Aug 2010 19:57:30 -0400
Newsgroups gmane.mail.qmail.ldap
Message-ID <[email protected]>
Qmail-LDAP List:

I have created a modification of the current qmail.schema file to 
support the cn=config or RTC method of configuring slapd in OpenLDAP. 
This feature was introduced in version 2.3 and has become the standard 
configuration method as of Ubuntu 10.04 LTS.

The file is simply the schema file formatted as LDIF with a particular 
statically defined DIT (cn=config). The usual schema files are 
pre-converted in the /etc/ldap/schema/ directory. The schema can be 
extended during runtime with the following command:

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/qmail.ldif

Please review and let me know of issues or changes required. The only 
changes to the comments are the inclusion of another line of credit for 
the conversion work.

-- 
Brian T Glenn
http://www.delink.net/
qmail.ldif (text/plain, 9.4 KB)
#
# qmail-ldap (20030901) ldapv3 directory schema
#
# The offical qmail-ldap OID assigned by IANA is 7914
#
# Created by: David E. Storey <[email protected]>
# Modified and included into qmail-ldap by Andre Oppermann <[email protected]>
# Schema fixes by Mike Jackson <[email protected]>
# Schema fixes by Christian Zoffoli (XMerlin) <[email protected]>
# Schema conversion to LDIF format by Brian T Glenn (delink) <[email protected]>
#
#
# This schema depends on:
#	- core.schema
#	- cosine.schema
#	- nis.schema
#

dn: cn=qmail,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: qmail
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.1 NAME 'qmailUID'  
 DESC 'UID of the user on the mailsystem' EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.2 NAME 'qmailGID' 
 DESC 'GID of the user on the mailsystem' EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.3 NAME 'mailMessageStore' 
 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 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.4 NAME 'mailAlternateAddress' 
 DESC 'Secondary (alias) mailaddresses for the same user' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.6 NAME 'mailHost' 
 DESC 'On which qmail server the messagestore of this user is located.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.7 NAME 'mailForwardingAddress' 
 DESC 'Address(es) to forward all incoming messages to.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.8 NAME 'deliveryProgramPath' 
 DESC 'Program to execute for all incoming mails.' EQUALITY caseExactIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.9 NAME 'qmailDotMode' 
 DESC 'Interpretation of .qmail files: both, dotonly, ldaponly, ldapwithprog' EQUALITY caseIgnoreIA5Match 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.10 NAME 'deliveryMode' 
 DESC 'multi field entries of: nolocal, noforward, noprogram, reply' EQUALITY caseIgnoreIA5Match 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.11 NAME 'mailReplyText' 
 DESC 'A reply text for every incoming message' EQUALITY caseIgnoreMatch 
 SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.12 NAME 'accountStatus' 
 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 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.14 NAME 'qmailAccountPurge' 
 DESC 'The earliest date when a mailMessageStore will be purged' EQUALITY numericStringMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.15 NAME 'mailQuotaSize' 
 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 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.16 NAME 'mailQuotaCount' 
 DESC 'The number of messages 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 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.17 NAME 'mailSizeMax' 
 DESC 'The maximum size of a single messages the user accepts.' EQUALITY integerMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.1 NAME 'dnmember' 
 DESC 'Group member specified as distinguished name.' EQUALITY distinguishedNameMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.2 NAME 'rfc822member' 
 DESC 'Group member specified as normal rf822 email address.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.3 NAME 'filtermember' 
 DESC 'Group member specified as ldap search filter.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{512} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.4 NAME 'senderconfirm' 
 DESC 'Sender to Group has to answer confirmation email.' EQUALITY booleanMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.5 NAME 'membersonly' 
 DESC 'Sender to Group must be group member itself.' EQUALITY booleanMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.6 NAME 'confirmtext' 
 DESC 'Text that will be sent with sender confirmation email.' EQUALITY caseIgnoreMatch 
 SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.7 NAME 'dnmoderator' 
 DESC 'Group moderator specified as Distinguished name.' EQUALITY distinguishedNameMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.8 NAME 'rfc822moderator' 
 DESC 'Group moderator specified as normal rfc822 email address.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.9 NAME 'moderatortext' 
 DESC 'Text that will be sent with request for moderation email.' EQUALITY caseIgnoreMatch 
 SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{4096} SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.10 NAME 'dnsender' 
 DESC 'Allowed sender specified as distinguished name.' EQUALITY distinguishedNameMatch 
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.11 NAME 'rfc822sender' 
 DESC 'Allowed sender specified as normal rf822 email address.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.12 NAME 'filtersender' 
 DESC 'Allowed sender specified as ldap search filter.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{512} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.3.1.13 NAME 'bounceadmin' 
 DESC 'rfc822 email address where bounces should be sent to.' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.1 NAME 'qladnmanager' 
 DESC '' EQUALITY distinguishedNameMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.2 NAME 'qlaDomainList' 
 DESC '' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.3 NAME 'qlaUidPrefix' 
 DESC '' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.4 NAME 'qlaQmailUid' 
 DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.5 NAME 'qlaQmailGid' 
 DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.6 NAME 'qlaMailMStorePrefix' 
 DESC '' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.7 NAME 'qlaMailQuotaSize' 
 DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.8 NAME 'qlaMailQuotaCount' 
 DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.9 NAME 'qlaMailSizeMax' 
 DESC '' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
olcAttributeTypes: ( 1.3.6.1.4.1.7914.1.4.1.10 NAME 'qlaMailHostList' 
 DESC '' EQUALITY caseIgnoreIA5Match 
 SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )
olcObjectClasses: ( 1.3.6.1.4.1.7914.1.2.2.1 NAME 'qmailUser' 
 DESC 'QMail-LDAP User' SUP top AUXILIARY MUST ( mail ) 
 MAY ( uid $ mailMessageStore $ homeDirectory $ userPassword $ mailAlternateAddress $ 
 qmailUID $ qmailGID $ uidNumber $ gidNumber $ mailHost $ mailForwardingAddress $ 
 deliveryProgramPath $ qmailDotMode $ deliveryMode $ mailReplyText $ accountStatus $ 
 qmailAccountPurge $  mailQuotaSize $ mailQuotaCount $ mailSizeMax ) )
olcObjectClasses: ( 1.3.6.1.4.1.7914.1.3.2.1 NAME 'qmailGroup' 
 DESC 'QMail-LDAP Group' SUP top AUXILIARY MUST ( mail $ mailAlternateAddress $ 
 mailMessageStore ) 
 MAY ( dnmember $ rfc822member $ filtermember $ senderconfirm $ membersonly $ 
 confirmtext $ dnmoderator $ rfc822moderator $ moderatortext $ dnsender $ rfc822sender $ 
 filtersender $ bounceadmin) )
olcObjectClasses: ( 1.3.6.1.4.1.7914.1.4.2.1 NAME 'qldapAdmin' 
 DESC 'QMail-LDAP Subtree Admin' SUP top AUXILIARY MUST ( qlaDnManager $ qlaDomainList $ 
 qlaMailMStorePrefix $ qlaMailHostList ) 
 MAY ( qlaUidPrefix $ qlaQmailUid $ qlaQmailGid $ qlaMailQuotaSize $ qlaMailQuotaCount $ 
 qlaMailSizeMax ) )
signature.asc (application/pgp-signature, 189 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFMayHiFy/L+4MovqIRAnQbAJ0QuBQzneNUp73iSw5xCTWc6COnpgCgmRFf
VFMp/1hJtCjP7MkmSWKCq04=
=b50A
-----END PGP SIGNATURE-----