Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dovecot_archlinux_-_quotas

Dovecot ArchLinux - Quotas

:!: HINWEIS - Die Nachfolgende Konfiguration von Dovecot setzt eine lauffähige Installation von Dovecot voraus, wie unter nachfolgendem internen Link beschrieben:

* Dovecot ArchLinux

Dovecot ist ein Quelloffener IMAP-und POP3-E-Mail-Server für Linux bzw. UNIX-ähnlichen Systeme, entwickelt mit dem Hauptaugenmerk auf Sicherheit. Dovecot ist eine ausgezeichnete Wahl für kleine und grosse Installationen. Dovecot ist schnell und einfach zu installieren, erfordert keine besonderen Voraussetzungen und ist Ressourcenschonend.

Dovecot wird von Timo Sirainen entwickelt und soll hier in der Version CE zum Einsatz kommen.

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

Voraussetzungen

Für die nachfolgende Installation wird vorausgesetzt,

  • dass eine lauffähige Version von Dovecot ab Version 2.3

vorhanden ist und die unter nachfolgenden Links beschriebenen Installationen und Konfigurationen von Dovecot als Mindestvoraussetzung zwingend durchgeführt wurden:

Vorbereitung

Quotas regeln den maximal zur Verfügung stehenden Speicherplatz im Dateisystem für

  • eine ganze Domäne
  • oder pro einzelnen Benutzer
    • für jeden Benutzer das gleiche Limit
    • pro Benutzer ein individuelles Limit

Der Aufbau eines Quota-Systems sieht wie folgt aus.

  • Quota-Roots - meist pro Benutzer, aber auch pro Domain wäre möglich, zur Quota-Berechnung
  • Quota-Backend - Speicherort für die Quota-Berechnung, z.B.
    • maildir - Speicherung in einer einfachen Datei im maildir-Ordner des Benutzers
    • dict - Speicherung in einer Datenbank
    • dirsize - Aufsummierung der Dateien im Dateisystem
    • fs - Bei shell-Nutzers kann die Betriebssystem-Quota-Berechnung genutzt werden
  • Quota-Rules - Definitionen von Regeln, pro Verzeichnis
  • Quota-Warnings - Benachrichtigung an den Benutzer, bei Überschreitung

Der häufigste und auch gebräuchlichste Einsatzzweck wird die Verwendung von

  • Quotas, individuell - pro einzelnen Benutzer sein.
  • Quota-Backend, maildir eine Datei im home-Verzeichnis (Postfach) des Benutzers
  • Quota-Rule, eine Begrenzung individuell für jeden Benutzer
  • Quota-Warning, Benachrichtigung per e-Mail, je nach prozentualer Überschreitung

Hier verwendete Einstellungen:

  1. Für die gesamte mailbox soll 1 GibaByte pro Benutezr eingestellt werden.
  2. Für den Ordner Trash (Papierkorb) werden zusätzlich 100 MegaByte für Löschaktionen eingestellt.
  3. Es soll eine Quota-grace (Gnaden-grenze) von 10% aktiviert werden, die ein Überschreiten der Quota-Beschränkungen um 10% für die sogenannte letzte e-Mail erlaubt.
  4. maildir soll hier als Quota-backend die erste Wahl sein.
  5. Es sollen Quota-Warnings per e-Mail versandt werden, bei 80% und 95%.
  6. Es sollen individuelle Quota-Einstellungen pro Benutzer realisiert werden.
  • Zu Testzwecken wird individuell beim einzelnen Benutzer für die gesamte mailbox ein extrem kleines Limit = 1 KiloByte hinterlegt!

Konfiguration

Nachfolgend sind verschiedene Konfigurationsschritte notwendig, die ggf. auch Kombinationen aus den einzelnen Teilen eines Quota-Systems bestehen.

/etc/dovecot/conf.d/10-mail.conf

mail_plugins

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/core/#core_setting-mail_plugins
Dovecot Configuration Manual - Quota Plugin
Defaultwert
mail_plugins =
Neuer Wert
mail_plugins = $mail_plugins quota
Konfiguration
# Space separated list of plugins to load for all services. Plugins specific to
# IMAP, LDA, etc. are added to this list in their own .conf files.
# Tachtler
# default: #mail_plugins = 
mail_plugins = $mail_plugins quota
Beschreibung Eine durch Leerzeichen getrennte Liste der zu ladenden Plugins.

:!: HINWEIS - $mail_plugins fügt bestehende plugins, aus evtl. anderen Konfigurationen und den Wert quota gemeinsam, dem Parameter mail_plugins hinzu!

/etc/dovecot/conf.d/20_imap.conf

mail_plugins

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/core/
Dovecot Configuration Manual - Quota Plugin
Defaultwert
mail_plugins =
Neuer Wert
mail_plugins = $mail_plugins imap_quota
Konfiguration
protocol imap {
  # Space separated list of plugins to load (default is global mail_plugins).
  # Tachtler
  # default: #mail_plugins = $mail_plugins
  mail_plugins = $mail_plugins imap_quota
 
  # Maximum number of IMAP connections allowed for a user from each IP address.
  # NOTE: The username is compared case-sensitively.
  #mail_max_userip_connections = 10
}
Beschreibung Eine durch Leerzeichen getrennte Liste der zu ladenden Plugins.

:!: HINWEIS - $mail_plugins fügt bestehende plugins, aus evtl. anderen Konfigurationen und den Wert imap_quota gemeinsam, dem Parameter mail_plugins hinzu!

/etc/dovecot/conf.d/90-quota.conf

Hier werden zur Quota-Berechnung, für jeden einzelnen Benutzer, die gleichen Werten eingestellt.

:!: HINWIES - Diese Einstellungen gelten als Basis immer dann, wenn keine individuellen Benutzer-Quota zusätzlich beim Benutzer individuell hinterlegt werden!

plugin (Quota limits): quota_rule

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota_rule
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_rule = 
Neuer Wert
quota_rule = *:storage=1G
Konfiguration
##
## Quota limits
##
 
# Quota limits are set using "quota_rule" parameters. To get per-user quota
# limits, you can set/override them by returning "quota_rule" extra field
# from userdb. It's also possible to give mailbox-specific limits, for example
# to give additional 100 MB when saving to Trash:
 
plugin {
  # Tachtler
  # default: #quota_rule = *:storage=1G
  quota_rule = *:storage=1G
  # Tachtler
  # default: #quota_rule2 = Trash:storage=+100M
  quota_rule2 = INBOX/Trash:storage=+100M
 
  # LDA/LMTP allows saving the last mail to bring user from under quota to
  # over quota, if the quota doesn't grow too high. Default is to allow as
  # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
  # Tachtler
  # default: #quota_grace = 10%%
  quota_grace = 10%%
 
  # Quota plugin can also limit the maximum accepted mail size.
  # Tachtler
  # default: #quota_max_mail_size = 100M
  quota_max_mail_size = 0
 
  # Tachtler - NEW - DISABLED -
  #quota_exceeded_message = Storage quota for this account has been exceeded.
}
Beschreibung Die Konfiguration der Quotenregel hat die folgende Syntax:

quota_rule = <mailbox name>:<limit configuration>

Es können mehrere Quotenregeln definiert werden, indem eine aufsteigende Zahl an die Bezeichnung der Einstellung angehängt wird.

* als Postfachname konfiguriert das Standardlimit, das zusätzlich zu einem postfachspezifischen Limit angewendet wird, falls es gefunden wird.

? als Name des Postfachs funktioniert fast wie *. Der Unterschied besteht darin, dass ? nur verwendet wird, wenn das Quota-Backend das Limit nicht ausser Kraft setzt.

Die Platzhalter * und ? können als generische Platzhalter in Postfachnamen verwendet werden, so dass z. B. box* auf Boxen passt.

Die folgenden Begrenzungsnamen werden unterstützt:

backend = Quota-Backend-spezifische Limit-Konfiguration.
bytes = Quotengrenze (ohne Suffix: in Bytes). 0 bedeutet unbegrenzt.
ignore = Das angegebene Postfach überhaupt nicht in die Quota einbeziehen.
messages = Quota-Limit in Anzahl der Nachrichten. 0 bedeutet unbegrenzt.
storage = Quotenlimit (ohne Suffix: in Kilobyte). 0 bedeutet unbegrenzt.

Einstellungen mit einem Grenzwert unterstützen die Size-Syntax als Suffix.

Einstellungen unterstützen auch % als Suffix. Prozentsätze sind relativ zur Standardregel.

Zu beachten ist, dass % zweimal geschrieben wird, um es zu entschlüsseln, da Konfigurationsvariablen im Plugin-Abschnitt erweitert werden. Bei der Konfiguration von Benutzerdatenbanken (userdb) kann dieses Escaping erforderlich sein, muss es aber nicht.

Die Backend-spezifische Konfiguration wird derzeit nur mit dem Maildir++ Quota-Backend verwendet. Das bedeutet, dass eine Quota im Maildir++ Format nachfolgendes Format haben kann (z.B. 10000000S).

plugin (Quota limits): quota_rule2

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota_rule
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_rule2 = 
Neuer Wert
quota_rule2 = INBOX/Trash:storage=+100M
Konfiguration
##
## Quota limits
##
 
# Quota limits are set using "quota_rule" parameters. To get per-user quota
# limits, you can set/override them by returning "quota_rule" extra field
# from userdb. It's also possible to give mailbox-specific limits, for example
# to give additional 100 MB when saving to Trash:
 
plugin {
  # Tachtler
  # default: #quota_rule = *:storage=1G
  quota_rule = *:storage=1G
  # Tachtler
  # default: #quota_rule2 = Trash:storage=+100M
  quota_rule2 = INBOX/Trash:storage=+100M
 
  # LDA/LMTP allows saving the last mail to bring user from under quota to
  # over quota, if the quota doesn't grow too high. Default is to allow as
  # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
  # Tachtler
  # default: #quota_grace = 10%%
  quota_grace = 10%%
 
  # Quota plugin can also limit the maximum accepted mail size.
  # Tachtler
  # default: #quota_max_mail_size = 100M
  quota_max_mail_size = 0
 
  # Tachtler - NEW - DISABLED -
  #quota_exceeded_message = Storage quota for this account has been exceeded.
}
Beschreibung Die Konfiguration der Quotenregel hat die folgende Syntax:

quota_rule = <mailbox name>:<limit configuration>

Es können mehrere Quotenregeln definiert werden, indem eine aufsteigende Zahl an die Bezeichnung der Einstellung angehängt wird.

* als Postfachname konfiguriert das Standardlimit, das zusätzlich zu einem postfachspezifischen Limit angewendet wird, falls es gefunden wird.

? als Name des Postfachs funktioniert fast wie *. Der Unterschied besteht darin, dass ? nur verwendet wird, wenn das Quota-Backend das Limit nicht ausser Kraft setzt.

Die Platzhalter * und ? können als generische Platzhalter in Postfachnamen verwendet werden, so dass z. B. box* auf Boxen passt.

Die folgenden Begrenzungsnamen werden unterstützt:

backend = Quota-Backend-spezifische Limit-Konfiguration.
bytes = Quotengrenze (ohne Suffix: in Bytes). 0 bedeutet unbegrenzt.
ignore = Das angegebene Postfach überhaupt nicht in die Quota einbeziehen.
messages = Quota-Limit in Anzahl der Nachrichten. 0 bedeutet unbegrenzt.
storage = Quotenlimit (ohne Suffix: in Kilobyte). 0 bedeutet unbegrenzt.

Einstellungen mit einem Grenzwert unterstützen die Size-Syntax als Suffix.

Einstellungen unterstützen auch % als Suffix. Prozentsätze sind relativ zur Standardregel.

Zu beachten ist, dass % zweimal geschrieben wird, um es zu entschlüsseln, da Konfigurationsvariablen im Plugin-Abschnitt erweitert werden. Bei der Konfiguration von Benutzerdatenbanken (userdb) kann dieses Escaping erforderlich sein, muss es aber nicht.

Die Backend-spezifische Konfiguration wird derzeit nur mit dem Maildir++ Quota-Backend verwendet. Das bedeutet, dass eine Quota im Maildir++ Format nachfolgendes Format haben kann (z.B. 10000000S).

plugin (Quota limits): quota_grace

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota_grace
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_grace = 
Neuer Wert
quota_grace = 10%%
Konfiguration
##
## Quota limits
##
 
# Quota limits are set using "quota_rule" parameters. To get per-user quota
# limits, you can set/override them by returning "quota_rule" extra field
# from userdb. It's also possible to give mailbox-specific limits, for example
# to give additional 100 MB when saving to Trash:
 
plugin {
  # Tachtler
  # default: #quota_rule = *:storage=1G
  quota_rule = *:storage=1G
  # Tachtler
  # default: #quota_rule2 = Trash:storage=+100M
  quota_rule2 = INBOX/Trash:storage=+100M
 
  # LDA/LMTP allows saving the last mail to bring user from under quota to
  # over quota, if the quota doesn't grow too high. Default is to allow as
  # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
  # Tachtler
  # default: #quota_grace = 10%%
  quota_grace = 10%%
 
  # Quota plugin can also limit the maximum accepted mail size.
  # Tachtler
  # default: #quota_max_mail_size = 100M
  quota_max_mail_size = 0
 
  # Tachtler - NEW - DISABLED -
  #quota_exceeded_message = Storage quota for this account has been exceeded.
}
Beschreibung Wenn diese Option gesetzt ist, können Nachrichtenlieferungen die Quote um diesen Wert überschreiten.

plugin (Quota limits): quota_max_mail_size

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota_max_mail_size
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_max_mail_size = 
Neuer Wert
quota_max_mail_size = 0
Konfiguration
##
## Quota limits
##
 
# Quota limits are set using "quota_rule" parameters. To get per-user quota
# limits, you can set/override them by returning "quota_rule" extra field
# from userdb. It's also possible to give mailbox-specific limits, for example
# to give additional 100 MB when saving to Trash:
 
plugin {
  # Tachtler
  # default: #quota_rule = *:storage=1G
  quota_rule = *:storage=1G
  # Tachtler
  # default: #quota_rule2 = Trash:storage=+100M
  quota_rule2 = INBOX/Trash:storage=+100M
 
  # LDA/LMTP allows saving the last mail to bring user from under quota to
  # over quota, if the quota doesn't grow too high. Default is to allow as
  # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
  # Tachtler
  # default: #quota_grace = 10%%
  quota_grace = 10%%
 
  # Quota plugin can also limit the maximum accepted mail size.
  # Tachtler
  # default: #quota_max_mail_size = 100M
  quota_max_mail_size = 0
 
  # Tachtler - NEW - DISABLED -
  #quota_exceeded_message = Storage quota for this account has been exceeded.
}
Beschreibung Die maximale Nachrichtengrösse, die gespeichert werden darf (z. B. durch LMTP,IMAP APPEND oder doveadm save).

0 bedeutet unbegrenzt.

:!: HINWEIS - Welche Grössenbeschränkung eine E-Mail hat, soll hier nicht durch Dovecot bestimmt werden, sondern durch den MTA - z.B. Postfix, welcher die E-Mail annimmt, da sonst bei einer Änderung dieses Wertes, es an zwei Stellen abgeändert werden müsste!

plugin (Quota limits): quota_exceeded_message

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota_exceeded_message
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_exceeded_message = 
Neuer Wert
#quota_exceeded_message = Storage quota for this account has been exceeded.
Konfiguration
##
## Quota limits
##
 
# Quota limits are set using "quota_rule" parameters. To get per-user quota
# limits, you can set/override them by returning "quota_rule" extra field
# from userdb. It's also possible to give mailbox-specific limits, for example
# to give additional 100 MB when saving to Trash:
 
plugin {
  # Tachtler
  # default: #quota_rule = *:storage=1G
  quota_rule = *:storage=1G
  # Tachtler
  # default: #quota_rule2 = Trash:storage=+100M
  quota_rule2 = INBOX/Trash:storage=+100M
 
  # LDA/LMTP allows saving the last mail to bring user from under quota to
  # over quota, if the quota doesn't grow too high. Default is to allow as
  # long as quota will stay under 10% above the limit. Also allowed e.g. 10M.
  # Tachtler
  # default: #quota_grace = 10%%
  quota_grace = 10%%
 
  # Quota plugin can also limit the maximum accepted mail size.
  # Tachtler
  # default: #quota_max_mail_size = 100M
  quota_max_mail_size = 0
 
  # Tachtler - NEW - DISABLED -
  #quota_exceeded_message = Storage quota for this account has been exceeded.
}
Beschreibung Die hier angegebene Nachricht wird an einen Benutzer weitergeleitet, der sein Kontingent überschreitet.

Der Wert ist entweder die Nachricht oder der Pfad zu einer Datei (mit einem vorangestellten <), die als Meldungsdatei verwendet wird.

:!: HINWEIS - Soll durch eine Skript, welches eine E-Mail in das Postfach des jeweiligen Benutzers einliefert, abgehandelt werden!

plugin (Quota warnings): quota_warning

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota_warning
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_warning = 
Neuer Wert
quota_warning = storage=95%% quota-warning 95 %u
Konfiguration
##
## Quota warnings
##
 
# You can execute a given command when user exceeds a specified quota limit.
# Each quota root has separate limits. Only the command for the first
# exceeded limit is executed, so put the highest limit first.
# The commands are executed via script service by connecting to the named
# UNIX socket (quota-warning below).
# Note that % needs to be escaped as %%, otherwise "% " expands to empty.
 
plugin {
  # Tachtler
  # default: #quota_warning = storage=95%% quota-warning 95 %u
  quota_warning = storage=95%% quota-warning 95 %u
  # Tachtler
  # default: #quota_warning2 = storage=80%% quota-warning 80 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}
Beschreibung Dovecot kann so konfiguriert werden, dass ein externer Befehl ausgeführt wird, wenn das Kontingent eines Benutzers einen bestimmten Grenzwert überschreitet. ZU beachten ist, dass die Warnung NUR genau zu dem Zeitpunkt ausgeführt wird, zu dem das Limit überschritten wird. Wenn ausser Dovecot die Quota aktualisiert, so dass die Grenze überschritten wird, wird die Warnung nie ausgeführt.

Die Konfiguration der Quotenwarnung hat die folgende Syntax:

quota_warning = <limit configuration> <quota-warning socket name> <parameters>

limit_configuration ist fast genau dasselbe wie für quota, mit der Ausnahme, dass ein - vor dem Wert für „reverse“-Warnungen hinzugefügt wird, bei denen das Skript aufgerufen wird, wenn quota unter den Wert fällt. Normalerweise sollte man Prozentwerte statt absoluter Grenzen verwenden.

Es wird nur der Befehl für das erste überschrittene Limit ausgeführt, also sollte das höchste Limit zuerst konfiguriert werden. Die eigentlichen Befehle, die ausgeführt werden, müssen als Dienste erstellt werden (es muss ein benannten Dovecot-Dienst erstellt werden und verwenden der Dienstnamen als Argument für den Socket-Namen quota-warning verwendet werden).

:!: HINWEIS - Das Prozentzeichen (%) muss als doppeltes % geschrieben werden, um die Expansion von Variablen zu vermeiden.

Es können mehrere Quotenregeln definieren werden, indem eine aufsteigende Zahl an die Bezeichnung der Einstellung anhängt wird.

plugin (Quota warnings): quota_warning2

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota_warning
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_warning2 = 
Neuer Wert
quota_warning2 = storage=80%% quota-warning 80 %u
Konfiguration
##
## Quota warnings
##
 
# You can execute a given command when user exceeds a specified quota limit.
# Each quota root has separate limits. Only the command for the first
# exceeded limit is executed, so put the highest limit first.
# The commands are executed via script service by connecting to the named
# UNIX socket (quota-warning below).
# Note that % needs to be escaped as %%, otherwise "% " expands to empty.
 
plugin {
  # Tachtler
  # default: #quota_warning = storage=95%% quota-warning 95 %u
  quota_warning = storage=95%% quota-warning 95 %u
  # Tachtler
  # default: #quota_warning2 = storage=80%% quota-warning 80 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}
Beschreibung Dovecot kann so konfiguriert werden, dass ein externer Befehl ausgeführt wird, wenn das Kontingent eines Benutzers einen bestimmten Grenzwert überschreitet. ZU beachten ist, dass die Warnung NUR genau zu dem Zeitpunkt ausgeführt wird, zu dem das Limit überschritten wird. Wenn ausser Dovecot die Quota aktualisiert, so dass die Grenze überschritten wird, wird die Warnung nie ausgeführt.

Die Konfiguration der Quotenwarnung hat die folgende Syntax:

quota_warning = <limit configuration> <quota-warning socket name> <parameters>

limit_configuration ist fast genau dasselbe wie für quota, mit der Ausnahme, dass ein - vor dem Wert für „reverse“-Warnungen hinzugefügt wird, bei denen das Skript aufgerufen wird, wenn quota unter den Wert fällt. Normalerweise sollte man Prozentwerte statt absoluter Grenzen verwenden.

Es wird nur der Befehl für das erste überschrittene Limit ausgeführt, also sollte das höchste Limit zuerst konfiguriert werden. Die eigentlichen Befehle, die ausgeführt werden, müssen als Dienste erstellt werden (es muss ein benannten Dovecot-Dienst erstellt werden und verwenden der Dienstnamen als Argument für den Socket-Namen quota-warning verwendet werden).

:!: HINWEIS - Das Prozentzeichen (%) muss als doppeltes % geschrieben werden, um die Expansion von Variablen zu vermeiden.

Es können mehrere Quotenregeln definieren werden, indem eine aufsteigende Zahl an die Bezeichnung der Einstellung anhängt wird.

service quota-warning

Nachfolgende Quota Einstellungen bewirken, dass eine Warnmeldung

  • an den Benutzer zugestellt wird
  • nur einmalig in dem Moment, wenn das Quota-Limit überschritten wird
  • Skript-basiert
Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/configuration_manual/service_configuration/#service-basics
Dovecot Configuration Manual - Quota Plugin
Dovecot Configuration Manual - Quota Configuration - Quota Warning Scripts
Defaultwert
service quota-warning
Neuer Wert
service quota-warning {...}
Konfiguration
# Example quota-warning service. The unix listener's permissions should be
# set in a way that mail processes can connect to it. Below example assumes
# that mail processes run as vmail user. If you use mode=0666, all system users
# can generate quota warnings to anyone.
# Tachtler - ENABLED -
service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  # Tachtler
  # default: #  user = dovecot
  user = vmail
  unix_listener quota-warning {
    user = vmail
  }
}
Beschreibung Aktivieren des Service zum Aufruf eines Skripts, welches eine Quota-Warnung E-Mail erstellt und dem jeweiligen Benutzer in sein Postfach sendet.

plugin (Quota backends): quota

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/settings/plugin/quota-plugin/#plugin_setting-quota-quota
Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota = 
Neuer Wert
quota = maildir:User quota
Konfiguration
##
## Quota backends
##
 
# Multiple backends are supported:
#   dirsize: Find and sum all the files found from mail directory.
#            Extremely SLOW with Maildir. It'll eat your CPU and disk I/O.
#   dict: Keep quota stored in dictionary (eg. SQL)
#   maildir: Maildir++ quota
#   fs: Read-only support for filesystem quota
 
plugin {
  #quota = dirsize:User quota
  # Tachtler
  # default: #quota = maildir:User quota
  quota = maildir:User quota
  #quota = dict:User quota::proxy::quota
  #quota = fs:User quota
}
 
# Multiple quota roots are also possible, for example this gives each user
# their own 100MB quota and one shared 1GB quota within the domain:
plugin {
  #quota = dict:user::proxy::quota
  #quota2 = dict:domain:%d:proxy::quota_domain
  #quota_rule = *:storage=102400
  #quota2_rule = *:storage=1048576
} 
Beschreibung Die Quotenstammkonfiguration hat die folgende Syntax:

quota = <backend>[:<quota root name>[:<backend args>]]

Der Name des Kontingentstamms ist nur eine beliebige Zeichenfolge, die an IMAP-Clients gesendet wird, die sie wiederum dem Benutzer anzeigen können. Der Name hat keine Bedeutung. Standardmässig wird eine leere Zeichenkette verwendet, aber das sollte geändert werden, da einige Clients (Apple Mail) die Quota nicht anzeigen.

es können mehrere Kontingentstämme definieren, indem eine aufsteigende Zahl an die Bezeichnung der Einstellung anhängt wird:

Global verfügbare Argumente für den Parameter <backend args>:

noenforcing = Quota-Berechnungen werden durchgeführt, aber nicht durchgesetzt, trotz z.B. Quota-Warnings!.
ns=<prefix> = Ein separates namensraumspezifisches Kontingent, das von allen Benutzern gemeinsam genutzt wird.

Wenn mehrere Backend-Argumente angegeben werden sollen, sind die diese mit : (z. B. noenforcing:ns=Public/:foo:bar) zu trennen.

:!: HINWEIS - Die Option noenforcing, könnte bei einer weichen Neueinführung von Quotas wertvoll sein!

service quota-status

Ein Problem ist, das bei der Einlieferung einer E-Mail, der MTA z.B. Postfix keine Kenntnis von einer Quota-Regelung im MDA Dovecot hat.

Das führt im schlimmsten Fall dazu, das eine Quota-Überschreitung erst nach Annahme der E-Mail durch den MTA z.B. Postfix festgestellt wird, weil eine Annahmeverweigerung durch den MDA Dovecot erfolgt.

Dies würde eine Late-Bounce nach sich ziehen, was wiederum zu einer Backscatter-Problematik führen kann, in dem Unschuldige durch gefälschte Absender-Angaben mit Late-Bounce-Nachrichten konfrontiert ggf. überschüttet werden.

Im nachfolgenden ausschnittsweise gezeigtem Konfigurationsbereich der Konfigurationsdatei, wird

  1. das Modul quota-status geladen und
  2. ein listener auf IP-Adressen: 10.0.0.80, fd00::10:10:0:0:80 und
  3. auf Port 12340 geöffnet
  4. an den immer nur eine Anfrage gleichzeitig/seriell übermittelt werden kann
Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/configuration_manual/service_configuration/#service-basics
Dovecot Configuration Manual - Quota Plugin
Dovecot Configuration Manual - Quota Configuration - Quota Service
Defaultwert
service quota-status
Neuer Wert
service quota-status {...}
Konfiguration
## Tachtler - NEW -
##
## Quota-Status configuration.
##
 
# Load Module quota-status and listen on TCP/IP Port for connections.
service quota-status {
  executable = quota-status -p postfix
  inet_listener {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 12340
  }
  client_limit = 1   
}
 
# Plugin configuration.
# Return messages for requests by quota status: success, nouser and overquota.
plugin {
  quota_status_success = DUNNO
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.2.2 Mailbox is over quota"
}
Beschreibung Der Quota-Dienst ermöglicht es Postfix, die Quoten vor der Zustellung zu überprüfen

service quota-status: client_limit

Information Beschreibung
Dokumentation https://doc.dovecot.org/2.3/configuration_manual/service_configuration/#client-limit
Dovecot Configuration Manual - Quota Plugin
Dovecot Configuration Manual - Quota Configuration - Quota Service
Defaultwert
client_limit = 
Neuer Wert
client_limit = 1
Konfiguration
## Tachtler - NEW -
##
## Quota-Status configuration.
##
 
# Load Module quota-status and listen on TCP/IP Port for connections.
service quota-status {
  executable = quota-status -p postfix
  inet_listener {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 12340
  }
  client_limit = 1   
}
 
# Plugin configuration.
# Return messages for requests by quota status: success, nouser and overquota.
plugin {
  quota_status_success = DUNNO
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.2.2 Mailbox is over quota"
}
Beschreibung Maximale Anzahl der gleichzeitigen Client-Verbindungen pro Prozess. Sobald diese Anzahl von Verbindungen erreicht ist, wird Dovecot bei der nächsten eingehenden Verbindung aufgefordert, einen neuen Prozess zu starten. Wird dieser Wert auf 0 gesetzt, wird stattdessen default_client_limit = (default: 1000) verwendet.

plugin (Quota status): quota_status_success

Information Beschreibung
Dokumentation Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_status_success = 
Neuer Wert
quota_status_success = DUNNO
Konfiguration
## Tachtler - NEW -
##
## Quota-Status configuration.
##
 
# Load Module quota-status and listen on TCP/IP Port for connections.
service quota-status {
  executable = quota-status -p postfix
  inet_listener {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 12340
  }
  client_limit = 1   
}
 
# Plugin configuration.
# Return messages for requests by quota status: success, nouser and overquota.
plugin {
  quota_status_success = DUNNO
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.2.2 Mailbox is over quota"
}
Beschreibung Aktion durchführen, wenn das Postfach vorhanden und gefunden wurde.

Für eine Übersicht der Möglichen Rückgabewerte an Postfix, kann nachfolgender externe Link verwendet werden:
access - Postfix SMTP server access table

:!: WICHTIG - Hier NICHT die Rückmeldungen OK oder PERMIT zurückgeben!

Wenn anstelle von DUNNO (keine Entscheidung, weiter im Verlauf) ein OK oder PERMIT zurückgegeben würde, würde Postfix die E-mail stets annehmen, selbst wenn SPAM-Schutz oder Virenscanner einen Treffer melden würden!

Dies gilt für die Anfrage, ob ein

  • Postfach vorhanden ist –> quota_status_success
  • Postfach unbekannt ist –> quota_status_nouser (ggf. E-Mail-Verarbeitung für mehrere „Backends“)

plugin (Quota status): quota_status_nouser

Information Beschreibung
Dokumentation Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_status_nouser = 
Neuer Wert
quota_status_nouser = DUNNO
Konfiguration
## Tachtler - NEW -
##
## Quota-Status configuration.
##
 
# Load Module quota-status and listen on TCP/IP Port for connections.
service quota-status {
  executable = quota-status -p postfix
  inet_listener {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 12340
  }
  client_limit = 1   
}
 
# Plugin configuration.
# Return messages for requests by quota status: success, nouser and overquota.
plugin {
  quota_status_success = DUNNO
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.2.2 Mailbox is over quota"
}
Beschreibung Aktion durchführen, wenn das Postfach nicht vorhanden und gefunden wurde.

Für eine Übersicht der Möglichen Rückgabewerte an Postfix, kann nachfolgender externe Link verwendet werden:
access - Postfix SMTP server access table

:!: WICHTIG - Hier NICHT die Rückmeldungen OK oder PERMIT zurückgeben!

Wenn anstelle von DUNNO (keine Entscheidung, weiter im Verlauf) ein OK oder PERMIT zurückgegeben würde, würde Postfix die E-mail stets annehmen, selbst wenn SPAM-Schutz oder Virenscanner einen Treffer melden würden!

:!: HINWEIS - Ein weitere Verarbeitung sollte auch bei einem nicht gefundenen Postfach durch die regulären Postfix-Mechanismen möglich sein - z.B. Ausführung von Skripten und nicht Einlieferung in ein Postfach!

Dies gilt für die Anfrage, ob ein

  • Postfach vorhanden ist –> quota_status_success
  • Postfach unbekannt ist –> quota_status_nouser (ggf. E-Mail-Verarbeitung für mehrere „backends“)

plugin (Quota status): quota_status_overquota

Information Beschreibung
Dokumentation Dovecot Configuration Manual - Quota Plugin
Defaultwert
quota_status_overquota =
Neuer Wert
quota_status_overquota = "552 5.2.2 Mailbox is over quota"
Konfiguration
## Tachtler - NEW -
##
## Quota-Status configuration.
##
 
# Load Module quota-status and listen on TCP/IP Port for connections.
service quota-status {
  executable = quota-status -p postfix
  inet_listener {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 12340
  }
  client_limit = 1   
}
 
# Plugin configuration.
# Return messages for requests by quota status: success, nouser and overquota.
plugin {
  quota_status_success = DUNNO
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.2.2 Mailbox is over quota"
}
Beschreibung Aktion durchführen, wenn das Postfach vorhanden und gefunden wurde, jedoch die Quota-Regelungen greifen - sprich das Postfach voll ist.

Für eine Übersicht der Möglichen Rückgabewerte an Postfix, kann nachfolgender externe Link verwendet werden:
access - Postfix SMTP server access table

/usr/local/bin/quota-warning.sh

Nachfolgendes shell-Skript kann dazu verwendet werden, um eine E-Mail an den Benutzer zu senden, das dieser sein Quota-Limit zu einem gewissen Prozentsatz ausgelastet hat.

Von grossem Vorteil ist hier, wenn die mailbox (Postfächer) aller Benutzer mit den Rechten des Dummy-Benutzers: vmail angelegt und betrieben werden, da hier auch das auszuführende shell-Skript unter dessen Rechten ausgeführt werden kann.

Dazu soll ein shell-Skript in nachfolgendem Verzeichnis mit nachfolgendem Namen mit nachfolgendem Befehl erstellt werden:

  • /usr/local/bin/quota-warning.sh
# vim /usr/local/bin/quota-warning.sh

Nachfolgend der Inhalt des shell-Skripts: (Grundlage/Quelle: www.heinlein-support.de - Peer Heinlein - Buch: Dovecot )

(Vollständiges Skript)

#!/bin/sh
PERCENT=$1
USER=$2
cat << EOF | /usr/libexec/dovecot/dovecot-lda -d $USER -o "plugin/quota=maildir:User quota:noenforcing"
From: postmaster@tachtler.net
To: $USER
Date: `date +"%a, %d %b %Y %H:%M:%S %z"`
Subject: Quota-Warnung!
 
Nachricht vom Postfachserver auf tachtler.net!
 
Ihr Postfach zur E-Mail-Adresse $USER ist zu $PERCENT% ausgelastet!
 
Ihr Postmaster
EOF

Damit das shell-Skript auch ausgeführt werden kann, müssen noch die entsprechenden Dateirechte mit nachfolgendem Befehl richtig gesetzt werden:

# chmod +x /usr/local/bin/quota-warning.sh

Konfiguration: Authentifizierung - passwd-file

Nachfolgende Quota Einstellungen sind abhängig vom jeweils verwendeten Authentifizierungsverfahren.

Nachfolgend soll die Hinterlegung von individuellen Benutzer-Quotas am Authentifizierungsverfahren

  • passwd-file

dargestellt werden, zusätzlich zu den Einstellungen in der Konfigurationsdatei

  • /etc/dovecot/conf.d/90-quota.conf

Um dies realisieren zu können, sind zusätzliche Anpassungen in der Konfigurationsdatei

  • /etc/dovecot/users

in der die Benutzer hinterlegt sind.

Siehe auch dazu den internen Link:

/etc/dovecot/users

Der Inhalt der Datei /etc/dovecot/users muss mindestens nachfolgenden Aufbau haben, wobei die Felder

  • <(gecos)>
  • <shell>
  • <extra_fields>

nicht vorhanden sein müssen und ggf. (ausser <extra_fields> am Ende der Zeile) mit ::, leer gelassen werden können!

<username>:{CODIERUNG}<password>:<uid>:<gid>:<realname>:<home>:<(gecos)>:<extra_fields>

Beispiel Vorher:

klaus@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/klaus::
petra@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/petra::

Beispiel Nachher:

Hier werden nun im Bereich <extras> Zusätzliche Informationen für die individuelle Benutzer-Quota-Berechnung hinzugefügt, was mit nachfolgender Ergänzung der Konfigurationsdatei durchgeführt werden kann:

klaus@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/klaus::userdb_quota_rule=*:storage=1K
petra@tachtler.net:{PLAIN}geheim:10000:10000::/srv/vmail/tachtler.net/petra::userdb_quota_rule=*:storage=2G

Das hinzufügen bei den Benutzer

  • klaus@tachtler.net von userdb_quota_rule=*:storage=1K
  • petra@tachtler.net von userdb_quota_rule=*:storage=2G

bewirkt, dass diese Benutzer die Basis Einstellungen überschreiben und eine individuelle Benutzer-Quota haben.

  • klaus@tachtler.net von 1 KiloByte
  • petra@tachtler.net von 2 GigaByte

Neustart

Bevor der der dovecot-Daemon/Dienst neu gestartet werden soll, ist eine Überprüfung der korrekten Konfiguration durch nachfolgenden Befehl, zu empfehlen

doveconf -n

# 2.3.21.1 (d492236fa0): /etc/dovecot/dovecot.conf
# OS: Linux 6.6.65-1-lts x86_64  
# Hostname: vml080.idmz.tachtler.net
auth_mechanisms = plain digest-md5 cram-md5 login
auth_verbose = yes
listen = 127.0.0.1, 10.0.0.80, ::1, fd00::10:10:0:0:80, 2001:db8::10:10:0:0:80
mail_location = maildir:~/Maildir
mail_plugins = " quota"
namespace inbox {
  inbox = yes
  location = 
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix = INBOX/
  separator = /
  type = private
}
passdb {
  args = scheme=CRYPT username_format=%u /etc/dovecot/users
  driver = passwd-file
}
plugin {
  quota = maildir:User quota
  quota_grace = 10%%
  quota_max_mail_size = 50M
  quota_rule = *:storage=1G
  quota_rule2 = INBOX/Trash:storage=+100M
  quota_status_nouser = DUNNO
  quota_status_overquota = 552 5.2.2 Mailbox is over quota
  quota_status_success = DUNNO
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=80%% quota-warning 80 %u
}
protocols = imap lmtp
service auth {
  inet_listener auth {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 12345
  }
}
service lmtp {
  inet_listener lmtp {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 24
    ssl = yes
  }
  user = vmail
}
service quota-status {
  client_limit = 1
  executable = quota-status -p postfix
  inet_listener {
    address = 10.0.0.80, fd00::10:10:0:0:80
    port = 12340
  }
}
service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  unix_listener quota-warning {
    user = vmail
  }
  user = vmail
}
ssl = required
ssl_cert = </etc/dovecot/ssl/certs/fullchain.pem
ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256
:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256
:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA
:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-SHA
:AES128-GCM-SHA256:AES256-GCM-SHA384:!CAMELLIA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK
:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_cipher_suites = TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256
:TLS_AES_128_CCM_8_SHA256:TLS_AES_128_CCM_SHA256
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
userdb {
  args = username_format=%u /etc/dovecot/users
  driver = passwd-file
}
verbose_proctitle = yes
protocol lmtp {
  auth_ssl_require_client_cert = yes
  ssl = required
  ssl_ca = </etc/dovecot/ssl/certs/server-lmtp-chain.pem
  ssl_require_crl = no
  ssl_verify_client_cert = yes
}
protocol imap {
  mail_plugins = " quota imap_quota"
}

:!: HINWEIS - Die Konfiguration der Parameter

  • ssl_cipher_list
  • ssl_cipher_suites

erfolgt in einer Zeile - OHNE - Zeilenumbrüche!

:!: HINWEIS - die Konfiguration des dovecot-Daemon/Dienst konnte korrekt gelesen werden, wenn die Konfiguration erscheint, was letztendlich zwar nicht bedeutet, das Sie auch korrekt ist, aber syntaktische Fehler ausschliesst !!!

Danach kann der dovecot-Server mit nachfolgendem Befehle neu gestartet werden:

# systemctl restart dovecot.service

Überprüfung erfolgreicher Neustart

Um zu Überprüfen, ob der Neustart des dovecot-Daemons/Dienstes erfolgreich durchgeführt wurden, kann nachfolgender Befehl genutzt werden:

# ss -tauben | grep dovecot
tcp   LISTEN 0      1000                   10.0.0.80:12345      0.0.0.0:*     ino:16554 sk:1001
 cgroup:/system.slice/dovecot.service <->
tcp   LISTEN 0      100                    10.0.0.80:12340      0.0.0.0:*     ino:16568 sk:1002
 cgroup:/system.slice/dovecot.service <->
tcp   LISTEN 0      100                    10.0.0.80:24         0.0.0.0:*     ino:16482 sk:1003
 cgroup:/system.slice/dovecot.service <->
tcp   LISTEN 0      100                    127.0.0.1:143        0.0.0.0:*     ino:16505 sk:1004
 cgroup:/system.slice/dovecot.service <->
tcp   LISTEN 0      100                    10.0.0.80:143        0.0.0.0:*     ino:16506 sk:1005
 cgroup:/system.slice/dovecot.service <->
tcp   LISTEN 0      100                    127.0.0.1:993        0.0.0.0:*     ino:16510 sk:1006
 cgroup:/system.slice/dovecot.service <->
tcp   LISTEN 0      100                    10.0.0.80:993        0.0.0.0:*     ino:16511 sk:1007
 cgroup:/system.slice/dovecot.service <->
tcp   LISTEN 0      100                        [::1]:993           [::]:*     ino:16512 sk:100a
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      100         [fd00::10:10:0:0:80]:993           [::]:*     ino:16513 sk:100b
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      100     [2001:db8::10:10:0:0:80]:143           [::]:*     ino:16509 sk:100c
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      100         [fd00::10:10:0:0:80]:12340         [::]:*     ino:16569 sk:100d
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      1000        [fd00::10:10:0:0:80]:12345         [::]:*     ino:16555 sk:100e
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      100         [fd00::10:10:0:0:80]:24            [::]:*     ino:16483 sk:100f
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      100     [2001:db8::10:10:0:0:80]:993           [::]:*     ino:16514 sk:1010
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      100         [fd00::10:10:0:0:80]:143           [::]:*     ino:16508 sk:1011
 cgroup:/system.slice/dovecot.service v6only:1 <->
tcp   LISTEN 0      100                        [::1]:143           [::]:*     ino:16507 sk:1012
 cgroup:/system.slice/dovecot.service v6only:1 <->

oder auch dieser Befehl:

# ps auxwf | grep dovecot | grep -v grep
root        1723  0.0  0.2   8148  5248 ?        Ss   10:53   0:00 /usr/bin/dovecot -F
dovecot     1725  0.0  0.1   4424  2816 ?        S    10:53   0:00  \_ dovecot/anvil [0 connections]
root        1726  0.0  0.1   4560  2944 ?        S    10:53   0:00  \_ dovecot/log 
root        1727  0.0  0.2   7344  4736 ?        S    10:53   0:00  \_ dovecot/config

bzw. auch dieser Befehl:

# systemctl status dovecot.service 
● dovecot.service - Dovecot IMAP/POP3 email server
     Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; preset: >
     Active: active (running) since Sun 2024-12-29 10:53:23 CET; 1min 19s ago
 Invocation: 2d378761f9bc4a57934c39a42cf869b3
       Docs: man:dovecot(1)
             https://doc.dovecot.org/
   Main PID: 1723 (dovecot)
     Status: "v2.3.21.1 (d492236fa0) running"
      Tasks: 4 (limit: 2315)
     Memory: 3.6M (peak: 4M)
        CPU: 78ms
     CGroup: /system.slice/dovecot.service
             ├─1723 /usr/bin/dovecot -F
             ├─1725 "dovecot/anvil [0 connections]"
             ├─1726 "dovecot/log "
             └─1727 "dovecot/config "

Dec 29 10:53:23 server systemd[1]: Starting Dovecot IMAP/POP3 email server...
Dec 29 10:53:23 server dovecot[1723]: master: Dovecot v2.3.21.1 (d492236fa0) st>
Dec 29 10:53:23 server systemd[1]: Started Dovecot IMAP/POP3 email server.

Quota-Befehle: doveadm

:!: HINWEIS - Nachfolgende Befehle sind nur verfügbar, wenn das quota-Plugin aktiv ist!

doveadm user

Mit nachfolgendem Befehl, gibt Dovecot eine Liste aller ihm bekannten Benutzer aus:

# doveadm user '*'
klaus@tachtler.net
petra@tachtler.net

Um zu Überprüfen, welche Benutzerdaten Dovecot bekannt sind, kann nachfolgender Befehl genutzt werden:

# doveadm user klaus@tachtler.net
field	value
uid	10000
gid	10000
home	/srv/vmail/tachtler.net/klaus
mail	maildir:~/Maildir
quota_rule	*:storage=1K
# doveadm user petra@tachtler.net
field	value
uid	10000
gid	10000
home	/srv/vmail/tachtler.net/petra
mail	maildir:~/Maildir
quota_rule	*:storage=2G

doveadm quota get

Mit nachfolgenden Befehlen, können Informationen zur Quota-Berechnung/Limit und zur Quota-Verwaltung realisiert werden.

Mit nachfolgendem Befehl, können Informationen zur mailbox (Postfach) eines Benutzer abgefragt werden:

:!: HINWEIS - Die Angabe des STORAGE erfolgt in KiloByte!

# doveadm quota get -u klaus@tachtler.net
Quota name Type    Value Limit                         %
User quota STORAGE     0     1                         0
User quota MESSAGE     0     -                         0

Oben stehende mailbox (Postfach) von klaus@tachtler.net ist mit 1 KiloByte Grösse definiert.

# doveadm quota get -u petra@tachtler.net
Quota name Type    Value   Limit                        %
User quota STORAGE     0 2097152                        0
User quota MESSAGE     0       -                        0

Oben stehende mailbox (Postfach) von petra@tachtler.net ist mit 2 GigaByte Grösse definiert.

doveadm quota recalc

Mit nachfolgendem Befehl, kann Dovecot angewiesen werden, die Quota-Berechnung für einen Benutzer neu durchzuführen:

# doveadm quota recalc -u klaus@tachtler.net

:!: HINWEIS - Es erfolgt keine Ausgabe!

Test

:!: HINWEIS - Ein Test, ob Dovecot die Quotas der einzelnen Benutzer honoriert, kann erst erfolgen, wenn ein MTA z.B. Postfix so konfiguriert wrude, das dieser den Dovecot ArchLinux - Quotas - /etc/dovecot/conf.d/90-quota.conf - service quota-status von Dovecot bei der Entgegennahme einer E-Mail vorher abfragt, ob genug Speicherplatz für die in den Dovecot einzuliefernde E-Mail vorhanden ist.

Siehe dazu auch den nachfolgenden internen Link

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/dovecot_archlinux_-_quotas.txt · Zuletzt geändert: 2025/01/11 12:01 von klaus