[Dovecot-de] Mailverzeichnisse auflisten
Lars Täuber
taeuber at bbaw.de
Mo Jul 14 10:45:47 CEST 2014
Hallo Christian!
Fri, 11 Jul 2014 23:12:45 +0200
Christian Boltz <dovecot-jpb at cboltz.de> ==> dovecot at listen.jpberlin.de :
> Hallo Alex, hallo Leute,
>
> Am Dienstag, 8. Juli 2014 schrieb Alex JOST:
> > Am 06.07.2014 23:41, schrieb Christian Boltz:
> > > gibt es einen Weg, alle Verzeichnisse aufzulisten, in denen Dovecot
> > > Postfächer pflegt?
> > >
> > > Hintergrund meiner Frage: Ich bin Maintainer des AppArmor-Pakets auf
> > > openSUSE und habe eine Anfrage bekommen, doch bitte
> > > $noch_ein_verzeichnis im Dovecot-Profil zu erlauben.
>
> > > Ideal wäre, wenn ich anhand der Dovecot-Config automagisch ein
> > > Schnipsel fürs AppArmor-Profil generieren könnte - nur weiß ich
> > > noch nicht genau wie ;-)
>
> > Vorausgesetzt Du kannst eine Liste aller Benutzer erzeugen, kannst Du
> > folgende Befehle benutzen, um die Dir mail- und home-Verzeichnis
> > auszugeben: doveadm user -f home user1 at example.com
> > doveadm user -f mail user1 at example.com
>
> Ich sehe gerade in der Manpage (dovecot-user), dass auch Wildcards
> erlaubt sind. Mal sehen...
>
> # doveadm user -f home '*'
> doveadm(cb): Error: User listing returned failure
> doveadm(cb): Fatal: user listing failed
>
> Die Erklärung steht im Log:
> Jul 11 22:33:48 server dovecot: auth-worker(32686): Error: sql: Iterate
> query failed: Table 'mail.users' doesn't exist (using built-in default
> iterate_query: SELECT username, domain FROM users)
>
> Nachdem ich die iterate_query konfiguriert habe, funktioniert es und
> liefert mir eine Liste der Usernamen.
> # doveadm user -f home '*'
> foo at example.com
> bar at example.com
>
> Das "-f home" wird also bei Wildcards nicht berücksichtigt. Schade[tm],
> dann eben:
>
> # doveadm user '*' | xargs doveadm user -f home
> /home/mailbox/example.com/foo
>
> /home/mailbox/example.com/foo
>
>
> (ja, inclusive der Leerzeilen)
Achtung!
Es kann auch Konfigurationen geben, die einen alternativen Speicherort nutzen.
Wir z.B. haben solche Mailboxen:
# doveadm user mustermann
[...]
home /srv/mail/fast/vmail/mustermann
mail mdbox:~/mdbox:ALT=/srv/mail/slow/vmail/mustermann/mdbox
Hier wären also 2 Verzeichnisse zu berücksichtigen:
/srv/mail/fast/vmail/mustermann/
/srv/mail/slow/vmail/mustermann/
Das Homeverzeichnis wird bei uns in der Konfig der LDAP-Abfrage definiert:
user_attrs = uid=user,uid=home=/srv/mail/fast/vmail/%$
Grüße
Lars
>
> Sieht schon mal nicht schlecht aus - aber bei 10000 Postfächern wird
> diese Liste sehr lang und zu einem Performance-Problem. An 100000 will
> ich gar nicht denken...
>
> Außerdem müsste beim Anlegen eines Postfachs das AppArmor-Profil
> aktualisiert werden - das ist nicht wirklich sinnvoll ;-) (genau
> deswegen hatte ich nach dem Basisverzeichnis, in dem alle Mailboxen
> liegen, gefragt ;-)
>
> So langsam habe ich das Gefühl, dass ein Kommentar in der Dovecot-Config
> "If you use AppArmor, please change /etc/apparmor.d/tunables/dovecot
> according to the path you enter here" die einzig brauchbare Lösung
> ist...
>
> Falls jemand einen Weg, der mir nur das Basisverzeichnis (z. B.
> /var/vmail/) liefert, kennt, bin ich weiterhin für Hinweise dankbar.
> Ich befürchte aber, dass das spätestens bei Beteiligung von SQL
> interessant[tm] wird...
>
>
> Gruß
>
> Christian Boltz
Mehr Informationen über die Mailingliste Dovecot