[Dovecot-de] Mailverzeichnisse auflisten
Christian Boltz
dovecot-jpb at cboltz.de
Fr Jul 11 23:12:45 CEST 2014
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)
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
--
>Programmieren in C++ hält die grauen Zellen am Leben.
Es schaerft alle fuenf Sinne: den Schwachsinn, den Bloedsinn,
den Wahnsinn, den Unsinn und den Stumpfsinn.
[Felix von Leitner und Holger Veit in doc]
Mehr Informationen über die Mailingliste Dovecot