= Einstellungen =
== .ldaprc ==

Sollte man (sinngemäß angepasst) so in sein $HOME packen, wenn man auf dem Server LDAP administrieren will:

{{{
BASE    dc=thinkmo, dc=de
BINDDN  uid=twaldmann, ou=People, dc=thinkmo, dc=de
}}}

== ldapvi ==
{{{
twaldmann@s1-db:~$ ldapvi --bind=sasl
}}}

== Aliases für LDAP Tools ==
{{{
alias ldapadd='ldapadd -W'
alias ldapdelete='ldapdelete -W'
alias ldapmodify='ldapmodify -W'
alias ldapmodrdn='ldapmodrdn -W'
alias ldappasswd='ldappasswd -W'
alias ldapsearch='ldapsearch'
alias ldapsearchauth='ldapsearch -W'
}}}
 * {{{-W}}} kann beim suchen weggelassen werden, da fast alles anonym lesbar ist.

= Checkliste neue Domain =
 * Mail
 {{{
 ldapaddmailalias postmaster@domain postmaster+domain
 ldapaddmailalias webmaster@domain webmaster+domain
}}}
 * Apache
 {{{
 ServerAdmin webmaster@domain
}}}

= Mail-Weiterleitung =
 {{{
 ldapaddmailalias info@domainaufunseremserver.de werauchimmer@t-online.de
 }}}

= Passwort ändern =

 * als Admin-User (twaldmann, bblank) nicht als root:
  * {{{ldappasswd -W [-S] "mail=user@domain,ou=Mail,dc=thinkmo,dc=de"}}}
    oder
    {{{ldappasswd -W [-S] "uid=user,ou=People,dc=thinkmo,dc=de"}}}
   * ohne -S: generiert passwort selbst
   * mit -S: fragt nach passwort (new password? + nochmal wiederholen)
   * als "bind password" passwort von twaldmann eingeben

= Userverwaltung =

 * User/Groups auflisten: `getent passwd` bzw. `getent group`
 * User hinzufügen (LDAP):
  * {{{ldapadduser --system --home /org/de.wikiwikiweb --uid 20003 --group --disabled-login --disabled-password  wikiwikiweb_de}}}
  * syntax ist gleich wie bei Debian `adduser`
  * legt auch informationen für das mail-system an
 * ldappasswd
 * User zu Gruppe hinzufügen:
  * {{{ldapadduser twaldmann wikiwikiweb_de}}}

= Mail =
== Definitionen ==
=== mail user ===
{{{
dn: mail=<user>@<domain>,ou=Mail,dc=thinkmo,dc=de (domain: virtual.thinkmo.de und alle, die auf virtual transport gehen)
objectClass: mail
objectClass: mailAccount
mail: <user>@<domain>
uidNumber: <uid> (kann mit vielen geshared werden)
gidNumber: <gid> (siehe uidNumber)
homeDirectory: /org/<reversed domain>/mail/<user>
mailDirectory: /org/<reversed domain>/mail/<user>
}}}

=== normaler user ===
{{{
dn: uid=<user>,ou=People,dc=thinkmo,dc=de
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: <user>
mail: <user>@thinkmo.de
cn: <realname>
uidNumber: <uid>
gidNumber: <gid>
homeDirectory: /home/<user>
}}}

=== mail alias ===
{{{
dn: mail=<user>@<domain>,ou=Mail,dc=thinkmo,dc=de
objectClass: mail
objectClass: mailAlias
mail: <user>@<domain>
mailDrop: <user|adresse>
}}}

 * Adresse kann vollst. Mailadresse sein, oder @domain - dann wird gleicher User in dieser Domain verwendet.

=== mail access ===
{{{
dn: mail=<user>@<domain>,ou=Mail,dc=thinkmo,dc=de
objectClass: mail
objectClass: mailPostfixAccess
mail: <user>@<domain>
mailAccess: (OK|REJECT|CODE)
}}}

=== mail transport ===
{{{
dn: mail=<user>@<domain>,ou=Mail,dc=thinkmo,dc=de
objectClass: mail
objectClass: mailPostfixTransport
mail: <user>@<domain>
mailTransport: TRANSPORT
}}}

=== mail domain type ===
{{{
dn: mail=<domain>,ou=Mail,dc=thinkmo,dc=de
objectClass: mailPostfixDomainType
mail: <domain>
mailDomainType: (local|relay|(virtual_(alias|mailbox))
}}}
 local:: (nicht benutzt)
 relay:: (nicht benutzt)
 virtual_alias:: ersatz fuer vdomain angabe
 virtual_mailbox:: benutzt virtual transport

== Mailaccount anlegen ==

Der User (genauer: seine Mailadresse) wird nur dem Mail-System (Courier/Postfix) bekannt gemacht, es wird kein System-Login-User angelegt:

{{{
ldapaddmailuser [--uid UID (default: 65534)] [--gid GID (default: 100)] \
 [--maildir MAILDIR (default: /org/DOMAIN/mail/USER/)] [--force-badname] USER@DOMAIN
}}}
 * "normale" Verwendung:
 {{{
 ldapaddmailuser USER@DOMAIN
 # dann entweder mailpasswort definieren oder 2xEnter, dann wird Zufallspasswort generiert.
}}}
 * Das Maildir muss von Hand angelegt und mit der entsprechenden UID, GID versehen werden, z.B.:
 {{{
 install -d -m 700 -o nobody -g users /org/DOMAIN/mail/{USER1,USER2,USER3}
}}}
 * Die Domain muss auf virtual geroutet werden:
 {{{
 ldapaddmaildomain --access DOMAIN virtual_mailbox
}}}

 * --force-badname für Mailadressen die nicht in /^[a-z][-_\.a-z0-9]*[a-z]$/ passen (mir ist kein verwendungszweck bekannt)

Änderungen:
{{{
$ ldapmodify
dn: mail=user@domain,ou=Mail,dc=thinkmo,dc=de
replace: mailDirectory
mailDirectory: /org/DOMAIN/mail/USER/
-
replace: homeDirectory
homeDirectory: /org/DOMAIN/mail/USER/
}}}

== Mailaccount ändern ==
{{{
ldapmodify -D BINDDN -W
}}}
Siehe man ldapmodify.

== Mailaccount löschen ==
{{{
ldapdelete -D BINDDN -W
}}}
Danach die zu löschenden DNs übergeben.

== Mailalias anlegen ==
=== virtual domain ===
{{{
ldapaddmaildomain --access DOMAIN virtual_alias
}}}
 * ToDo!

=== virtual transport ===
{{{
$ /usr/local/sbin/ldapaddmaildomain
Enter a mail: DOMAIN
Enter a domain type: virtual_mailbox
}}}
 * ToDo!

=== user ===
{{{
ldapaddmailalias ALIAS DROP
}}}