4.4. LDIF

Per descrivere le entry di un database LDAP viene utlizzato un formato convenzionale chiamato LDIF (LDAP Data Interchage Format). Un file LDIF è semplicemente un file di testo con una serie di coppie attributo/valore con questa sintassi:

dn: <distinguished name>
objectclass: <object class>
...
...
<attribute type>: <attribute value>
<attribute type>: <attribute value>
...
      
I file LDIF vengono utilizzati per importare modificare ed esportare le entry del database (sono decisamente comodi essendo ascii puro). Riporto la struttura logica e successivamente alcuni esempi di ldif commentati:
           dc=infra, dc=org, o=Anarchy, ou=People
                 |            
                 |_ uid=phasa@dominio.org
                       |
                       |_ alias=phasa
                       |
                       |__mail=phasa@dominio.org
      

Esempio dell'LDIF corrispondente (proveniente direttamente dallo script di migrazione):

dn: uid=phasa@dominio.org, ou=People, dc=infra, dc=org, o=Anarchy
shadowMax: 99999
uid: phasa@dominio.org
cn: phasa@dominio.org
homeDirectory: /var/empty
uidNumber: 13468
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
objectClass: organizationalPerson
objectClass: inetOrgPerson
shadowWarning: 7
gidNumber: 2000
gecos: phasa@dominio.org
shadowLastChange: 12345
sn: Private
userPassword: {crypt}x
givenName: Private
loginShell: /bin/false

dn: mail=phasa@dominio.org, uid=phasa@dominio.org, ou=People,
  dc=infra, dc=org, o=Anarchy
mailAlternateAddress: phasa@public.org
mailAlternateAddress: phasa@public2.org
mailAlternateAddress: phasa@public3.org
status: active
uidNumber: 13468
objectClass: top
objectClass: virtualMailUser
host: server1
gidNumber: 2000
creationDate: 2002-05-07
originalHost: server1
mail: phasa@dominio.org
userPassword: {crypt}$1$fa0c5a13$VVqsukrQmdr79LZg2xvnM.
mailMessageStore: dominio.org/phasa/

dn: alias=phasa, uid=phasa@dominio.org, ou=People, dc=infra, 
  dc=org, o=Anarchy
parentSite: public.org
status: active
objectClass: top
objectClass: subSite
documentRoot: /home/users/phasa/html
host: server1
originalHost: server1
alias: phasa