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.