Administration des Cyrus IMAP-Servers (Konsole)
Für die Administration unseres Cyrus IMAP-Servers unter CentOS 6.x verwenden wir im einfachsten Fall die
Zur Verwaltung unserer Nutzerkonten/Mailboxen steht und cyradm aus dem Paket cyrus-imapd-utils zur Verfügung.
Installation
Falls noch nicht geschehen, installieren wir das nötige Paket mit Hilfe von yum.
# yum install cyrus-imapd-utils -y
Den Inhalt des RPM-Paketes inspizieren wir bei Bedarf wie folgt:
# rpm -qil cyrus-imapd-utils
Name : cyrus-imapd-utils Relocations: (not relocatable) Version : 2.3.16 Vendor: CentOS Release : 6.el6_1.4 Build Date: Thu 01 Dec 2011 06:24:38 PM CET Install Date: Mon 26 Dec 2011 10:27:06 PM CET Build Host: c6b5.bsys.dev.centos.org Group : Applications/System Source RPM: cyrus-imapd-2.3.16-6.el6_1.4.src.rpm Size : 733204 License: BSD Signature : RSA/SHA1, Wed 07 Dec 2011 06:51:10 PM CET, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://cyrusimap.web.cmu.edu/ Summary : Cyrus IMAP server administration utilities Description : The cyrus-imapd-utils package contains administrative tools for the Cyrus IMAP server. It can be installed on systems other than the one running the server. /usr/bin/cyradm /usr/bin/imtest /usr/bin/installsieve /usr/bin/lmtptest /usr/bin/mupdatetest /usr/bin/nntptest /usr/bin/notifytest /usr/bin/pop3test /usr/bin/sieveshell /usr/bin/sivtest /usr/bin/smtptest /usr/bin/synctest /usr/lib64/perl5/vendor_perl/Cyrus /usr/lib64/perl5/vendor_perl/Cyrus/IMAP /usr/lib64/perl5/vendor_perl/Cyrus/IMAP.pm /usr/lib64/perl5/vendor_perl/Cyrus/IMAP/Admin.pm /usr/lib64/perl5/vendor_perl/Cyrus/IMAP/IMSP.pm /usr/lib64/perl5/vendor_perl/Cyrus/IMAP/Shell.pm /usr/lib64/perl5/vendor_perl/Cyrus/SIEVE /usr/lib64/perl5/vendor_perl/Cyrus/SIEVE/managesieve.pm /usr/lib64/perl5/vendor_perl/auto /usr/lib64/perl5/vendor_perl/auto/Cyrus /usr/lib64/perl5/vendor_perl/auto/Cyrus/IMAP /usr/lib64/perl5/vendor_perl/auto/Cyrus/IMAP/IMAP.so /usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE /usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE/managesieve /usr/lib64/perl5/vendor_perl/auto/Cyrus/SIEVE/managesieve/managesieve.so /usr/share/doc/cyrus-imapd-utils-2.3.16 /usr/share/doc/cyrus-imapd-utils-2.3.16/Changes /usr/share/doc/cyrus-imapd-utils-2.3.16/README /usr/share/doc/cyrus-imapd-utils-2.3.16/examples /usr/share/doc/cyrus-imapd-utils-2.3.16/examples/auditmbox.pl /usr/share/doc/cyrus-imapd-utils-2.3.16/examples/imapcollate.pl /usr/share/doc/cyrus-imapd-utils-2.3.16/examples/imapdu.pl /usr/share/doc/cyrus-imapd-utils-2.3.16/examples/test-imsp.pl /usr/share/man/man1/cyradm.1.gz /usr/share/man/man1/imtest.1.gz /usr/share/man/man1/installsieve.1.gz /usr/share/man/man1/lmtptest.1.gz /usr/share/man/man1/mupdatetest.1.gz /usr/share/man/man1/nntptest.1.gz /usr/share/man/man1/pop3test.1.gz /usr/share/man/man1/sieveshell.1.gz /usr/share/man/man1/sivtest.1.gz /usr/share/man/man1/smtptest.1.gz /usr/share/man/man3/Cyrus::IMAP.3pm.gz /usr/share/man/man3/Cyrus::IMAP::Admin.3pm.gz /usr/share/man/man3/Cyrus::IMAP::IMSP.3pm.gz /usr/share/man/man3/Cyrus::IMAP::Shell.3pm.gz /usr/share/man/man3/Cyrus::SIEVE::managesieve.3pm.gz
Administration
Dank unserer Systemvorgaben in der /etc/imapd.conf beschränkt sich jedoch die Arbeit hier auf sehr wenig.
Gestartet wird der Zugang von der Konsole über:
# cyradm --user cyrus --server localhost --auth CRAM-MD5
IMAP Password:
nausch.org>
Die Authentifizierung läuft dabei via saslauth gegen unseren LDAP-Server.
Befehlsübersicht
Eine Übersicht der möglichen Befehle erhält man durch Eingabe von help oder einem ?.
nausch.org> ?
authenticate, login, auth authenticate to server
chdir, cd change current directory
createmailbox, create, cm create mailbox
deleteaclmailbox, deleteacl, dam remove ACLs from mailbox
deletemailbox, delete, dm delete mailbox
disconnect, disc disconnect from current server
exit, quit exit cyradm
help, ? show commands
info display mailbox/server metadata
listacl, lam, listaclmailbox list ACLs on mailbox
listmailbox, lm list mailboxes
listquota, lq list quotas on specified root
listquotaroot, lqr, lqm show quota roots and quotas for mailbox
mboxcfg, mboxconfig configure mailbox
reconstruct reconstruct mailbox (if supported)
renamemailbox, rename, renm rename (and optionally relocate) mailbox
server, servername, connect show current server or connect to server
setaclmailbox, sam, setacl set ACLs on mailbox
setinfo set server metadata
setquota, sq set quota on mailbox or resource
subscribe, sub subscribe to a mailbox
unsubscribe, unsub unsubscribe from a mailbox
version, ver display version info of current server
xfermailbox, xfer transfer (relocate) a mailbox to a different server
Konto anlegen
Wollte man eine neue Mailbox selber anlegen so benutzt man cm oder createmailbox.
nausch.org> cm user/username
Konto löschen
Damit eine Mailbox gelöscht werden kann, muss zuerst die Berechtigung für den Administrator cyrus übergeben werden. Dies erreicht man mit dem Befehl setaclmailbox oder kurz sam.
nausch.org> sam user/testuser cyrus all nausch.org> dm user/testuser
Mailbox Quota setzen
In der Regel wird man seinen Nutzern keinen unbegrenzten Speicherplatz zur Verfügung stellen wollen und/oder können.
Zum Setzen der Quota nutz man den Befehl setquota, oder kurz sq.
nausch.org> sq user/django 4096000
quota:4096000
Mailbox Quota abfragen
Will man die aktuelle Belegung wie auch den maximalen Speicherplatz abfragen, greifen wir auf den Befehl listquota bzw. in Kurzform lq zurück.
nausch.org> lq user/django
STORAGE 682958/2048000 (33.34755859375%)
Mailbox Quota ändern
Verändert wird die Quota mittels wie schon beim Setzen mit Hilfe von setquota, oder kurz sq.
nausch.org> lq user/django
STORAGE 682958/2048000 (33.34755859375%)
nausch.org> sq user/django 4096000
quota:4096000
nausch.org> lq user/django
STORAGE 682963/4096000 (16.6739013671875%)
Fazit
Dank nachfolgender Konfigurationsoptionen in der /etc/imapd.conf können wir eigentlich auf die Arbeit mit dem manuellen Anlegen von Nutzerkonten verzichten.
# Ein Wert größer als Null setzt einen Quo in kByte. Ein Wert der nicht 0 ist, # erlaubt dem Benutzer das anlegen seiner eigenen INBOX autocreatequota: 2048000 # Sobald 90% der Quota erreicht ist, gibt der Server Warnmeldungen aus quotawarn: 90 # Postfach wird angelegt, wenn per lmtpd eine Nachricht angeliefert wird, # für die noch kein Inbox besteht createonpost: no # Loggt sich ein User neu an, oder es wird eine Nachricht per lmtpd # angeliefert, für das noch kein Account besteht, so wird dieser automatisch # mit den definierten Ordnern angelegt ###autocreateinboxfolders: inbox|achive autocreateinboxfolders: Archives | Drafts | Sent | Trash # Loggt sich ein User neu an, oder es wird eine Nachricht per lmtpd # angeliefert, für das noch kein Account besteht, so werden automatisch # folgende Ordner abboniert autosubscribeinboxfolders: Archives | Drafts | Sent | Trash
Haben wir einen neuen Nutzer in unserem zentralen LDAP-Verzeichnis angelegt und der Nutzer meldet sich das erste mal am IMAP-Server an, wird automatisch sein Nutzerkonto angelegt, die Quota vergeben, sowie die Defaut-Ordner angelegt und abboniert.