Peer Heinlein. Dovecot. POP3/IMAP-Server für Unternehmen und ISPs. 1. Auflage. Open Source Press



Ähnliche Dokumente
INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH

Speichern. Speichern unter

Informationen zum neuen Studmail häufige Fragen

Einrichten eines MAPI- Kontos in MS Outlook 2003

MailUtilities: Remote Deployment - Einführung

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

Enigmail Konfiguration

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Dokumente verwalten. Copyright 2013 cobra computer s brainware GmbH

PHPNuke Quick & Dirty

Outlook-Abgleich. Copyright 2012 cobra computer s brainware GmbH

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

K. Hartmann-Consulting. Schulungsunterlage Outlook 2013 Kompakt Teil 1

Einzel- s und unpersönliche Massen-Mails versenden

Datensicherung. Beschreibung der Datensicherung

Modul 2.2: Zugang zu Ihren Teilnehmer-Ordnern via ftp (zum Dateientransfer):

Ein Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird

Anleitungen zum KMG- -Konto

Menüband. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April

1 Kalender gemeinsam verwenden

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Wie halte ich Ordnung auf meiner Festplatte?

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Roundcube Webmail Kurzanleitung

Umstellung Ihrer Mailbox von POP zu IMAP

FORUM HANDREICHUNG (STAND: AUGUST 2013)

FastViewer Remote Edition 2.X

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Die Dateiablage Der Weg zur Dateiablage

INSTALLATION ABACUS ABAWEBCLIENT

Adminer: Installationsanleitung

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

Benutzerverwaltung mit Zugriffsrechteverwaltung (optional)

Kleines Handbuch zur Fotogalerie der Pixel AG

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware

Herzlich Willkommen bei der BITel!

Umstellung News-System auf cms.sn.schule.de

! " # $ " % & Nicki Wruck worldwidewruck

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Postfach aufräumen und archivieren

Anleitung über den Umgang mit Schildern

Updateanleitung für SFirm 3.1

Gmail in Thunderbird mit IMAP einrichten

Danke, dass sie sich für die Infoliste der Moodleveranstaltung eingetragen haben.

Nach dem Anmelden sind die Arbeitnehmer beim Finanzamt bekannt und Sie können und müssen sogar die Änderungsliste, z.b. monatlich, abrufen.

Einrichten eines POP-Mailkontos unter Thunderbird Mail DE:

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Fotostammtisch-Schaumburg

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Anleitung Captain Logfex 2013

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Anleitung fürs Webmail

Update-Anleitung. Copyright 2010 cobra computer s brainware GmbH

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Konfiguration einer Sparkassen-Chipkarte in StarMoney

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Installationsanleitung CLX.PayMaker Home

SANDBOXIE konfigurieren

teamsync Kurzanleitung

Einrichten eines IMAP Kontos unter Outlook Express

ICS-Addin. Benutzerhandbuch. Version: 1.0

Über die Internetseite Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Registrierung am Elterninformationssysytem: ClaXss Infoline

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Einrichten von Pegasus Mail zur Verwendung von MS Exchange und Übertragen der alten Maildaten auf den neuen Server

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

Lieber SPAMRobin -Kunde!

FILEZILLA HANDBUCH

Handbuch Groupware - Mailserver

Kommunikations-Management

Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro)

Anleitung: Mailinglisten-Nutzung

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

DVD Version 9.1. Netzwerkinstallation + VDE-Admin-Tool.

Lizenzen auschecken. Was ist zu tun?

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Outlook 2000 Thema - Archivierung

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen

2. Die eigenen Benutzerdaten aus orgamax müssen bekannt sein

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Nutzung des Retain-Archivs

-Konten für Studierende und Zugriffswege auf die Mail-Systeme der Hochschule Rhein-Waal

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

FTP-Server einrichten mit automatischem Datenupload für

Hochschulrechenzentrum. chschulrechenzentrum #96. Freie Universität Berlin

Zur Bestätigung wird je nach Anmeldung (Benutzer oder Administrator) eine Meldung angezeigt:

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

Tutorial: Wie kann ich Dokumente verwalten?

Dokumentation IBIS Monitor

Transkript:

Peer Heinlein Dovecot POP3/IMAP-Server für Unternehmen und ISPs 1. Auflage Open Source Press

Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestem Wissen erstellt. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grunde sind die in dem vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor(en), Herausgeber, Übersetzer und Verlag übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht, auch nicht für die Verletzung von Patentrechten, die daraus resultieren können. Ebenso wenig übernehmen Autor(en) und Verlag die Gewähr dafür, dass die beschriebenen Verfahren usw. frei von Schutzrechten Dritter sind. Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. werden ohne Gewährleistung der freien Verwendbarkeit benutzt und können auch ohne besondere Kennzeichnung eingetragene Marken oder Warenzeichen sein und als solche den gesetzlichen Bestimmungen unterliegen. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung des Buches oder Teilen daraus vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlags in irgendeiner Form (Druck, Fotokopie, Mikrofilm oder einem anderen Verfahren), auch nicht für Zwecke der Unterrichtsgestaltung, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden. Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. Copyright 2014 Open Source Press, München Gesamtlektorat: Dr. Markus Wirtz Satz: Open Source Press & Thomas Schraitle Umschlaggestaltung: Olga Saborov, Open Source Press Gesamtherstellung: Kösel, Krugzell ISBN: 9783955390747 (gedruckte Ausgabe) http://www.opensourcepress.de

9 Der IMAP-Namespace und Shared Folder Shared Folder sind eine extrem praktische Möglichkeit, um gemeinsam im Team an einem Projekt zu arbeiten. Sie benötigen dafür keine aufwändige Groupwarelösung oder sonstige Tricks schon das einfache IMAP bringt alles mit, was Sie dafür benötigen. Über IMAP-ACLs (Access Control Lists) kann ein User einem anderen User Zugriffsrechte auf einen seiner Ordner einrichten. Dabei kann auch durchaus filigran unterschieden werden, welche Rechte ein anderer User erhalten soll: l (lookup) Der Ordner ist sichtbar und kann vom Nutzer abonniert werden. r (read) Der Ordner kann vom Nutzer zum Lesen selektiert werden. Kapitel 181

9 Der IMAP-Namespace und Shared Folder w (write) Der Nutzer kann Nachrichten-Flags und Keywords speichern/ändern; \Seen und \Deleted sind davon jedoch ausgenommen. s (write-seen) Das Flag \Seen kann gesetzt/geändert werden. t (write-deleted) Das Flag \Deleted kann gesetzt/geändert werden. i (insert) In diesen Ordner können Nachrichten geschrieben oder kopiert werden. p (post) In diesen Ordner können Nachrichten über dovecot-lda oder LMTP eingeliefert werden, beispielsweise als Ergebnis einer Sieve-Filterung. e (expunge) In diesem Ordner können Nachrichten zum Löschen markiert werden. k (create) Der Nutzer kann unterhalb dieses Ordners neue Ordner anlegen/umbenennen. Eine Umbenennung benötigt auch Delete-Rechte. x (delete) Der Nutzer kann diesen Ordner löschen. a (admin) Der Nutzer hat Administrationsrechte an diesem Ordner (darf also ACLs setzen). Das schöne dabei ist: Der User kann ACLs ohne Hilfe des Administrators in seinem Mailclient selber setzen. Ältere Mailclients unterstützen ACLs nicht und Thunderbird benötigt auch jetzt noch die Installation der Imap- ACL-Extension über den Menüpunkt Extras Add-ons. Aber prinzipiell können die heutigen Mailclients mit ACL lesend und schreibend umgehen. Auch der Webmailer Roundcube unterstützt in den aktuellen Versionen mit einem acl-plugin das Lesen und Setzen von ACLs im IMAP-Protokoll. Oft finden sich die ACL-Einstellungen etwas versteckt bei Thunderbird beispielsweise durch einen Rechtsklick auf den jeweiligen Folder, dann Eigenschaften Freigabe Rechte setzen. 182

9.1 Notwendige Vorbereitungen Zu beachten ist, dass der User hier die Login-Kennung desjenigen angeben soll, der Zugriff auf die Verzeichnisse erhalten soll. In Setups, wo Login- Kennung und Mailadresse identisch sind, ist das einfach und bequem: Man gibt einer anderen Mailadresse Zugriff, das bedarf keiner weiteren Erklärung. Werden jedoch Kurznamen als Login-Kennung genutzt, muss der Freigeber zunächst vom Empfänger die Login-Kennung erfragen, um die ACL-Regel richtig einzutragen. An Universitäten oder Fachhochschulen hatte ich diesbezüglich schon häufiger datenschutzrechtliche Schwierigkeiten, wenn in der Login-Kennung auch die Matrikel-Nummer der Studenten enthalten ist, was natürlich ein ganz grundsätzliches Problem ist. Oft werden Prüfungsergebnisse am schwarzen Brett anonym unter den Matrikelnummern veröffentlicht Alles in allem sind Shared Folder wieder mal einer der Gründe, warum ich so ein großer Fan davon bin, dass sich User direkt mit ihrer Mailadresse einloggen. Aber, zugegeben: Das ist nicht immer möglich und es gibt auch Setups, wo das nicht sinnvoll ist. 9.1 Notwendige Vorbereitungen Shared Folder funktionieren bei Dovecot wie folgt: 1. Loggt sich ein Nutzer ein und ist das acl-plugin aktiv, schaut Dovecot in einem Dictionary nach, ob andere User für diesen User eine Freigabe erteilt haben. 2. Über eine userdb-abfrage ermittelt der IMAP-Prozess des eingeloggten Nutzers die Home-Verzeichnisse der anderen User. 3. Anschließend schaut Dovecot bei diesen Usern in die Datei dovecotacl-list dort ist verzeichnet, in welchen Foldern es überhaupt gesetzte ACL-Rechte gibt. 4. Zu guter Letzt wertet Dovecot in den jeweiligen Foldern die Datei dovecot-acl aus, die nun tatsächlich die Liste der ACLs dieses Folders enthält. Dieser etwas umständliche Weg hat einen einfachen Grund: Haben Sie ein System, bei dem viele zehntausend User jeweils viele tausend Folder haben, kann Dovecot bei einem Login unmöglich in allen Foldern nach eventuell vorhandenen ACLs suchen. Er muss über zentrale Inhaltsverzeichnisse 183

9 Der IMAP-Namespace und Shared Folder schnell ermitteln, welche Folder überhaupt in Frage kommen, also wo sich ein ACL-Recht für den eingeloggten Nutzer verstecken könnte. Entzieht ein User einem anderen User einmal erteile Rechte wieder, verbleibt trotzdem der ursprüngliche Eintrag im zentralen Dictionary. Dovecot räumt hier nicht auf, auch wenn er so auch noch das Home-Verzeichnis des einstigen Share-Gebers durchsuchen muss. Das ist (geringfügig) ineffizient, aber nicht dramatisch. Auf hundert Mailverzeichnisse kommt es beim Login nicht an. Entscheidend ist doch vielmehr, dass durch diesen Mechanismus hunderttausend andere Verzeichnisse außen vor bleiben! Bereiten Sie Dovecot also zunächst für das zentrale Dictionary /var/lib/ dovecot/db/shared-mailboxes.db vor. Dieses muss auch von dem (unprivilegierten) IMAP-Prozess des eingeloggten Nutzers lesbar und auch beschreibbar sein. Da bei Änderungen an dieser Datei vorübergehend ein temporäres File angelegt werden muss, müssen Sie die Dateirechte des ganzen Ordners /var/lib/dovecot/db anpassen. Haben Sie (wie in diesem Buch stets empfohlen) die zentrale UID vmail für alle User, ist der Vorgang einfach: flash:~ # mkdir /var/lib/dovecot/db flash:~ # chown vmail:vmail /var/lib/dovecot/db Achten Sie im Cluster-Betrieb darauf, dass diese Datei auf allen Cluster- Knoten synchron gehalten wird.¹ Damit der IMAP-Prozess des eingeloggten Nutzers über eine userdb-abfrage andere Home-Verzeichnisse ermitteln kann, müssen Sie einen weiteren auth-socket mit unprivilegierten Zugriffsrechten einrichten. Passen Sie in 10-master.conf den bereits vorhandenen Socket auth-userdb wie folgt an: service auth { unix_listener auth-userdb { #mode=0660 user = vmail group = vmail Nun müssen Sie noch dafür Sorge tragen, dass das acl-plugin für alle Module geladen wird. Ergänzen Sie mail_plugins darum in der Datei 10- mail.conf um das acl-plugin: mail_plugins = [...] acl ¹ Auf http://wiki2.dovecot.org/sharedmailboxes/shared ist gezeigt, wie das Dictionary auf einem SQL-Server vorgehalten wird. 184

9.2 Die Definition eines Shared Namespace Außerdem erhält das IMAP-Modul in der Datei 20-imap.conf zusätzlich das imap_acl-plugin. Schließlich soll der User am Ende über das IMAP- Protokoll seine Freigaben verwalten können: protocol imap { mail_plugins = $mail_plugins [...] imap_acl Zuletzt sagen Sie in der Datei 90-acl.conf dem acl-plugin, wo es das Dictionary anlegen soll: plugin { acl = vfile acl_shared_dict = file:/var/lib/dovecot/db/shared-mailboxes.db Hier wird es später Einträge nach folgendem Muster geben: shared/shared-boxes/user/peer@example.com/ivonne@example.com Zu lesen ist das shared-mailboxes-file von rechts nach links: Ivonne hat Peer eine Freigabe erteilt. Der restliche Eintrag shared/shared-boxes/ user/ ist immer gleich und hat derzeit keine tiefere Bedeutung. Ist das acl-plugin aktiv, kennt doveadm ab Version 2.2 auch entsprechende acl-kommandos (siehe Abschnitt 9.6.1). 9.2 Die Definition eines Shared Namespace Nun können Sie einen speziellen IMAP-Namespace einrichten, unter dem die freigegebenen Ordner anderer User eingeblendet werden. In der Datei /etc/dovecot/10-mail.conf ist neben dem Namespace für die INBOX auch ein Namespace vom Typ shared vorbereitet, den Sie aktivieren und wie hier gezeigt anpassen müssen: namespace inbox { type = private hidden = no ignore_on_failure = no inbox = yes list = yes location = prefix = separator =. subscriptions = yes type = shared hidden = no ignore_on_failure = no 185

9 Der IMAP-Namespace und Shared Folder inbox = no list = children location = maildir:%%h/maildir:index=%h/shared/%%u:control=%h/shared/%%u prefix = shared/%%u/ separator =. subscriptions = yes Während bei Dovecot ein %h auf das Home-Verzeichnis eines Users und %u auf seinen Usernamen verweist, referenzieren doppelte Prozentzeichen im Shared Namespace stets auf die Daten des anderen Users, also des Share-Gebers. %%h/maildir zeigt also auf das Maildir-Verzeichnis, in dem die geteilten Maildaten liegen. Gibt der User Peer der Userin Ivonne seinen Folder INBOX.Privates.Urlaub frei, würde der Ordner bei dieser Konfiguration bei Ivonne später als shared +-- peer +-- INBOX +-- Privates +-- Urlaub eingeblendet werden und ein Zugriff auf diese Folder in das Home-Verzeichnis von Peer umgelenkt werden. Die Index-Dateien und auch Control- Dateien (wie das subscriptions-file) verbleiben jedoch individuell beim User Peer, gespeichert in einem Verzeichnis shared/<andererusername>. Haben Sie bis hierhin alle Schritte erledigt und nach den Konfigurationsänderungen einen Reload von Dovecot ausgeführt, können Ihre User Freigaben auf ihre IMAP-Folder erteilen. Allerdings gibt es noch einige Fallstricke zu beachten und ein paar Entscheidungen zu treffen. 9.3 Der richtige Hierarchie-Separator für einen Shared Namespace In der Praxis wird die eben gezeigte Konfiguration jedoch Schwierigkeiten machen, wenn die Login-Kennungen der User einen Punkt enthalten, also p.heinlein@example.com. Da der Punkt auch als Hierarchie-Trenner genutzt wird, ergäbe sich aus Sicht des Mailclients die Hierarchie shared +-- p +-- heinlein@example +-- com +-- INBOX +-- Privates +-- Urlaub 186

9.3 Der richtige Hierarchie-Separator für einen Shared Namespace Solange nicht ausgeschlossen werden kann, dass Usernamen definitiv nie einen Punkt enthalten, empfehle ich sehr, den Hierarchie-Trenner von Punkt auf / zu ändern. Aus INBOX.Privates.Urlaub wird dann INBOX/Privates/Urlaub und eine Shared-Folder-Freigabe shared/p.heinlein@example.com/inbox/privates/urlaub würde vom Mailclient mit den richtigen Hierarchien angezeigt werden können.² Wenn Sie Ihr Mailsystem gerade frisch hochziehen, ist die Änderung des Hierarchie-Trenners unproblematisch. Die Mailclients werden das erkennen und sich von Anfang an darauf einstellen. Das IMAP-Protokoll sieht vor, dass der IMAP-Server den Hierarchie-Trenner frei wählen kann (und der Client kann sich seinerseits überlegen, mit welchem Trenner er das am Ende tatsächlich anzeigt). In unserem Beispiel würden Sie in beiden Namespaces (!) ein separator = / setzen: namespace inbox { type = private hidden = no ignore_on_failure = no inbox = yes list = yes location = prefix = separator = / subscriptions = yes type = shared hidden = no ignore_on_failure = no inbox = no list = children location = maildir:%%h/maildir:index=%h/shared/%%u:control=%h/shared/%%u prefix = shared/%%u/ separator = / subscriptions = yes Wenn Sie diese Änderung auf einem bereits laufenden System mit relevantem Mailbestand haben, so müssen Sie folgendes beachten: ² Es gibt das Plugin listescape, mit dem sich Punkte, die nicht als Hierarchie-Trenner gelten sollen, so escapen lassen, dass der Client sie als Punkt darstellt und nicht als Hierarchie-Trenner nutzt: http://wiki.dovecot.org/plugins/listescape. In der Praxis gab es jedoch mit diversen Mailclients weiterhin merkwürdige Probleme, so dass ich diese Option für nicht praktikabel halte. 187

9 Der IMAP-Namespace und Shared Folder In den subscription-files, wo Dovecot speichert, welche Ordner der User abonniert hat, können die Foldernamen weiterhin mit Punkt stehen. Dovecot versteht und übersetzt das. Allerdings müssen Sie Foldernamen in Sieve-Filterregeln anpassen. Aus einem fileinto INBOX.Mailinglisten.Dovecot wird nun ein fileinto INBOX/Mailinglisten/Dovecot. Allerdings dürfen Sie in Sieve-Scripten nicht pauschal alle Punkte ersetzen, sonst zerstören Sie eventuell Mailadressen und Autoresponder-Texte. Achten Sie darauf, Punkte nur in den Zeilen zu ersetzen, die auch das fileinto-kommando beinhalten. Das folgende sed-kommando erledigt diese Aufgabe, gibt die geänderten Dateien aber nur auf dem Bildschirm aus: flash:~ # sed '/fileinto/ s/\./\//g' sievescript.txt Kontrollieren Sie den Output von sed und lassen Sie anschließend die Änderung über den Parameter -i tatsächlich in den Dateien vornehmen: flash:~ # sed -i '/fileinto/ s/\./\//g' sievescript.txt 9.4 Shared Folder bei mdbox oder beim auto:-modus Achtung: Anders als beim Maildir-Format sind bei mdbox die Index- Dateien dovecot.index.* für Dovecot lebenswichtig, um die Position der E-Mails in den m-files wiederzufinden (siehe Abschnitt 7.3). Anders als bei Maildir dürfen beim Format mdbox im Namespace shared nicht mehr INDEX und CONTROL auf ein Verzeichnis des Share-Empfängers verbogen sein. Falsch wäre beim Einsatz von mdbox also: type = shared prefix = shared/%%u/ location = mdbox:%%h/mdbox:index=%h/shared/%%u:control=%h/shared/%%u Richtig heißt es bei mdbox ganz unscheinbar: type = shared prefix = shared/%%u/ location = mdbox:%%h/mdbox 188

9.5 Ordner parallel zur INBOX Dovecot kann dann dovecot.cache.* des Share-Gebers benutzen und in dessen mdbox-verzeichnis die E-Mails sauber finden. Ähnliches gilt, wenn Sie Dovecot den Typ des Zielverzeichnisses automatisch bestimmen lassen, also den auto:-modus einsetzen (siehe Abschnitt 7.5): mail_location=auto: Nach auto: darf nie ein anderer Parameter stehen. Folglich wäre auch ein auto:%%h für die Angabe des Remote-Homeverzeichnisses schon unzulässig. Auch im Shared-Namespace muss für den Auto-Modus einfach nur auto: angegeben werden: type = shared separator = / prefix = shared/%%u/ location = auto: subscriptions = yes list = children 9.5 Ordner parallel zur INBOX Spätestens wenn Sie Shared Folders einführen, sollten Sie sich noch einmal gründlich Gedanken zum Aufbau des inbox-namespace machen. Das IMAP- Protokoll selbst legt nicht fest, ob es IMAP-Folder parallel zu INBOX geben darf oder nur hierarchisch untergeordnet. Das Thema wurde ja bereits in Abschnitt 4.4.1 thematisiert, lesen Sie ggf. dort noch einmal nach. Mit Blick auf die beiden hier genannten Argumente würde ich Ihnen immer raten, nur Folder unterhalb der INBOX zuzulassen. Insbesondere wenn Sie bei einem neuen System von Grund auf neu anfangen, sollten Sie hier die Weichen zukunftssicher stellen: Es gibt kein wirkliches Argument dagegen und Sie müssen später nicht migrieren. Setzen Sie dafür in namespace inbox das passende Prefix. Achten Sie darauf, dass das Prefix auf den Hierarchie-Separator enden muss. Richtig ist also (je nach Setup) ein INBOX. oder INBOX/, falsch wäre hingegen INBOX: namespace inbox { type = private hidden = no ignore_on_failure = no inbox = yes list = yes location = prefix = INBOX/ 189

9 Der IMAP-Namespace und Shared Folder separator = / subscriptions = yes Entscheiden Sie sich, auf einem gewachsenen System den Namespace anzupassen, so beachten Sie unbedingt die Hinweise in Kapitel 19. 9.6 Public Folder Während sich bei Shared Foldern einzelne User gegenseitig Zugriff einräumen, sind Public Folder nicht an einen einzelnen User als Share-Geber gebunden, sondern werden zentral vom Administrator auf Dateiebene eingerichtet und freigegeben. Sie sind zunächst für alle User des Systems verfügbar, also eine Art schwarzes Brett ; dennoch kann auch hier per ACLs vom Administrator gesteuert werden, welche User auf welche Public Folder Zugriff haben und wie weit ihre Rechte an diesen Foldern reichen. Neben den bereits beschriebenen Namespaces inbox und shared können Sie dafür in der 10-mail.conf den Namespace public eintragen (dieser ist in den Konfigurationsdateien derzeit noch nicht vorbereitet): type = public separator = / prefix = Public/ location = maildir:/srv/vmail/public subscriptions = yes Achten Sie auch hier drauf, dass separator und prefix zu Ihrem restlichen Namespace passen. Wenn Sie Dovecot in einer Active/Active-Replikation betreiben, so beachten Sie bitte zusätzlich Abschnitt 16.4.2. Legen Sie nun die Verzeichnisse Ihres Public Namespace an. Achten Sie darauf, dass alles für den User vmail zugreifbar ist und sich dieser Pfad nicht versehentlich mit dem eines anderen Users überschneidet. flash:/srv/vmail # mkdir public flash:/srv/vmail # cd public flash:/srv/vmail/public # mkdir cur new tmp flash:/srv/vmail/public # mkdir ".Rundbriefe" flash:/srv/vmail/public # mkdir ".Essensplan Kantine" flash:/srv/vmail/public # chown vmail:vmail.* flash:/srv/vmail/public # ls -la total 16 drwxr-xr-x 4 vmail vmail 4096 Aug 2 21:16. drwxr-xr-x 4 vmail vmail 4096 Aug 2 21:15.. drwxr-xr-x 2 vmail vmail 4096 Aug 2 21:16.Essensplan Kantine 190

9.6 Public Folder drwxr-xr-x 2 vmail vmail 4096 Aug drwxr-xr-x 2 vmail vmail 4096 Aug drwxr-xr-x 2 vmail vmail 4096 Aug drwxr-xr-x 2 vmail vmail 4096 Aug 2 21:15.Rundbriefe 2 21:16 cur 2 21:16 new 2 21:16 tmp In diesem Public Folder hätten jetzt alle User Lese- und auch Schreib- und Löschrechte. Vielleicht ist das nicht unbedingt das, was Sie wollen. Beschränkungen können Sie jedoch über ganz normale ACLs steuern, so dass Sie als nächstes im Maildir die ACL-Rechte manuell in der Datei dovecot-acl anpassen. Geben Sie über das besondere Schlüsselwort authenticated allen Usern lediglich Leserechte und einigen ausdrücklich privilegierten User in den Public Folder auch Schreibrechte, beispielsweise um per Drag & Drop Nachrichten hier zu veröffentlichen: flash:/srv/vmail/public # vi dovecot-acl authenticated lrs user=teamassistenz@example.com akxeilprwts flash:/srv/vmail/public # chown vmail:vmail dovecot-acl Denken Sie daran, die ACLs auch für Unterordner entsprechend anzupassen. Sie können die Datei dovecot-acl dazu ggf. auch einfach kopieren. 9.6.1 Den Public Namespace durch einen Dummy-User verwalten Unter Umständen können Sie den Public Namespace auch absichtlich genau in den Pfad eines dafür reservierten Dummy-Users zeigen zu lassen. So können Sie sich als Administrator dieses besondere Postfach in Ihren Mailclient einbinden und bequem den Inhalt des Public Namespace gestalten. Außerdem können Sie so ebenfalls über den Mailclient oder doveadm-kommandos die ACLs des Ordners verwalten, um zu steuern, wer auf diese IMAP-Folder lesend und wer schreibend zugreifen darf. Allerdings dürfen Sie diesen Trick nur anwenden, wenn Sie sonst keinen Shared Namespace haben. Andernfalls würden Ihre User Ihren Public Namespace aufgrund der gesetzten ACL-Freigaben zusätzlich noch einmal als Share-Freigabe des besagten Dummy-Users doppelt zu sehen bekommen.³ Um diese Variante zu nutzen, setzen Sie die location des Public Namespace auf das Maildir des Dummy-Users: ³ Ganz gewiefte könnten jedoch manuell den dafür notwendigen Eintrag aus dem Shared Dictionary in /var/lib/dovecot/db/shared-mailboxes.db löschen und die Share-Freigabe so wieder unterbinden. 191

9 Der IMAP-Namespace und Shared Folder type = public separator = / prefix = Public/ location = maildir:/srv/vmail/example.com/publicuser/maildir subscriptions = yes Greifen Sie über Ihren Mailclient oder Webmailer auf das besagte Postfach zu und setzen Sie darüber bequem und einfach die gewünschten ACL- Rechte. Per Default wird es von Dovecot jedoch unterbunden, dass über das IMAP- Protokoll ACL-Rechte für anyone (jeder User, auch anonyme) oder authenticated (alle authentifizierten User) gesetzt werden können. Zu groß ist normalerweise das Risiko, dass User versehentlich weitreichende Freigaben erteilen. Sie können die Schlüsselwörter anyone und authenticated in der 90-plugin.conf wie folgt aktivieren, wenn Sie die Rechte über Ihren Mailclient verwalten wollen: plugin { acl_anyone = allow Ab Dovecot 2.2.x können Sie ACL-Rechte auch über das Dovecot-Kommando doveadm acl auf der Konsole setzen: flash:~ # doveadm acl set -u publicuser@example.com INBOX owner all flash:~ # doveadm acl set -u publicuser@example.com INBOX authenticated lookup read write-seen flash:~ # doveadm acl get -u publicuser@example.com INBOX ID Global Rights authenticated lookup read write-seen owner admin create delete expunge insert lookup post read write write-deleted write-seen Folder können Sie dann auch bequem per doveadm-kommando anlegen: flash:~ # doveadm mailbox create -u publicuser@example.com "INBOX/Rundbriefe" flash:~ # doveadm mailbox create -u publicuser@example.com "INBOX/Essensplan Kantine" Tipp: Bevor Sie fleißig Folder anlegen, sollten Sie zuerst die ACLs im Public Namespace klären. Neu angelegte Folder erben dann gleich die passenden ACLs und Sie sparen sich Wiederholungsarbeit. 192

9.7 User-spezifische \Seen-Flags bei Shared Foldern und im Public Namespace 9.6.2 Die Anzeige im Folder-Listing Dass die Public Folder für die User verfügbar sind, prüfen Sie einfach mit Ihrem eigenen Mailclient; aber auch über das doveadm-kommando sehen Sie die Folder individuell pro User: flash:~ # doveadm mailbox list -u klaus@example.com INBOX INBOX/Urlaub Public Public/Essensplan Kantine Public/Rundbriefe 9.7 User-spezifische \Seen-Flags bei Shared Foldern und im Public Namespace Im Maildir-Format wird das \Seen-Flag im Dateinamen kodiert und ist darum bei von mehreren Usern gemeinsam genutzten Foldern für alle gleich. Beim mdbox-format wird das Flag zwar nicht mehr im Dateinamen, sondern in den zugehörigen Index-Dateien gespeichert, aber auch hier würden alle Anwender auf die gleichen Index-Dateien zugreifen und darum stets die gleichen \Seen-Flags sehen. Ab Version 2.2 bietet Dovecot die Möglichkeit, das \Seen-Flag abweichend vom normalen Ablauf in einer separaten Index-Datei zu speichern und diese kann sich auch getrennt von den eigentlichen Maildateien im Home- Verzeichnis eines jeden Users befinden. Auf diese Weise wird das \Seen-Flag individuell pro User gespeichert. Ob individuelle \Seen-Flags wünschenswert oder lästig sind, müssen Sie je nach Anwendungsfall entscheiden. Bei einem Team-Postfach oder einer Urlaubsvertretung ist es sehr nützlich zu sehen, was die anderen Kollegen bereits gelesen haben, und individuelle \Seen-Flags sind eher nachteilig. Nutzen Sie Public oder Shared Folder jedoch als Teamverteiler, um alle Nutzer zentral zu informieren, sind individuelle \Seen-Flags pro Anwender wünschenswert. Egal ob Maildir oder mdbox: Ergänzen Sie für individuelle \Seen-Flags die location-angabe im Shared oder Public Namespace um den Parameter INDEXPVT, der auf das lokale Home-Verzeichnis des Users verweist. Beim Shared Namespace: type = shared # Maildir: location = 193

9 Der IMAP-Namespace und Shared Folder maildir:%%h/maildir:index=%h/shared/%%u:control=%h/shared/%%u:indexpvt=%h/shared # Alternativ mdbox: # location = mdbox:%%h/mdbox:indexpvt=%h/mdbox/shared [...] Bzw. beim Public Namespace: type = public # Maildir: location = maildir:/srv/vmail/public:indexpvt=%h/maildir/public # Alternativ mdbox: # location = mdbox:%%h/mdbox:indexpvt=%h/mdbox/shared [...] 194