Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dovecot_quotas_-_sql-backend

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:dovecot_quotas_-_sql-backend [2017/04/07 14:29] – [/etc/dovecot/dovecot-dict-sql.conf.ext] klaustachtler:dovecot_quotas_-_sql-backend [2017/04/07 15:08] (aktuell) – [Beispiel-Anzeige] klaus
Zeile 3: Zeile 3:
 :!: **HINWEIS** - **Die Nachfolgende Konfiguration von [[http://dovecot.org|Dovecot]] setzt eine lauffähige Installation von [[http://dovecot.org|Dovecot]] sowie eine lauffähige Installation von [[http://postfixadmin.sourceforge.net/|Postfix Admin]] voraus, wie unter nachfolgenden internen Links beschrieben !!!** :!: **HINWEIS** - **Die Nachfolgende Konfiguration von [[http://dovecot.org|Dovecot]] setzt eine lauffähige Installation von [[http://dovecot.org|Dovecot]] sowie eine lauffähige Installation von [[http://postfixadmin.sourceforge.net/|Postfix Admin]] voraus, wie unter nachfolgenden internen Links beschrieben !!!**
   * **[[tachtler:dovecot_centos_6|Dovecot CentOS 6]]**   * **[[tachtler:dovecot_centos_6|Dovecot CentOS 6]]**
 +  * **[[tachtler:dovecot_centos_7|Dovecot CentOS 7]]**
   * **[[tachtler:postfix_admin|Postfix Admin]]**   * **[[tachtler:postfix_admin|Postfix Admin]]**
  
Zeile 142: Zeile 143:
  
 <code ini> <code ini>
- 
 map { map {
   pattern = priv/quota/storage   pattern = priv/quota/storage
Zeile 150: Zeile 150:
   username_field = username   username_field = username
   value_field = bytes   value_field = bytes
 +}
 +</code>
 +
 +<code ini>
 +map {
 +  pattern = priv/quota/messages
 +  # Tachtler
 +  # default: table = quota
 +  table = quota2
 +  username_field = username
 +  value_field = messages
 +}
 +</code>
 +
 +Die Verwendung einer Tabelle für Ablaufdaten, soll hier aktuell **__nicht__** zum Einsatz kommen:
 +
 +<code ini>
 +# Tachtler - DISABLED -
 +#map {
 +#  pattern = shared/expire/$user/$mailbox
 +#  table = expires
 +#  value_field = expire_stamp
 +#
 +#  fields {
 +#    username = $user
 +#    mailbox = $mailbox
 +#  }
 +#}
 +</code>
 +
 +==== /etc/dovecot/dovecot-dict-sql-domain.conf.ext ====
 +
 +Nachfolgende Konfigurationsdatei ist **standardmäßig __nicht__** im Verzeichnis
 +  * ''/etc/dovecot''
 +enthalten.
 +
 +Jedoch kann die Konfigurationsdatei aus dem installierten ''rpm''-Paket ''dovecot'' in das Konfigurationsverzeichnis von [[http://dovecot.org|Dovecot]] kopiert werden, was mit nachfolgendem Befehl durchführt werden kann:
 +<code>
 +# cp -a /usr/share/doc/dovecot-2.2.10/example-config/dovecot-dict-sql.conf.ext /etc/dovecot/dovecot-dict-sql-domain.conf.ext
 +</code>
 +
 +Anschließend kann mit nachfolgendem Befehl überprüft werden, ob dies erfolgreich durchgeführt wurde:
 +<code>
 +# ll /etc/dovecot/dovecot-dict-sql-domain.conf.ext
 +-rw-r--r-- 1 root root 1085 May 23 13:06 /etc/dovecot/dovecot-dict-sql-domain.conf.ext
 +</code> 
 +
 +(**Komplette Konfigurationsdatei**)
 +<code ini>
 +# This file is commonly accessed via dict {} section in dovecot.conf
 +
 +# Tachtler
 +# default: #connect = host=localhost dbname=mails user=testuser password=pass
 +connect = host=mysql.tachtler.net dbname=postfix user=postfixuser password=geheim
 +
 +# CREATE TABLE quota (
 +#   username varchar(100) not null,
 +#   bytes bigint not null default 0,
 +#   messages integer not null default 0,
 +#   primary key (username)
 +# );
 +
 +map {
 +  pattern = priv/quota/storage
 +  # Tachtler
 +  # defautl: table = quota
 +  table = domain
 +  # Tachtler
 +  # default: username_field = username
 +  username_field = domain
 +  # Tachtler
 +  # default: value_field = bytes
 +  value_field = quota
 +}
 +map {
 +  pattern = priv/quota/messages
 +  # Tachtler
 +  # defautl: table = quota
 +  table = quota2
 +  username_field = username
 +  value_field = messages
 +}
 +
 +# CREATE TABLE expires (
 +#   username varchar(100) not null,
 +#   mailbox varchar(255) not null,
 +#   expire_stamp integer not null,
 +#   primary key (username, mailbox)
 +# );
 +
 +# Tachtler - DISABLED -
 +#map {
 +#  pattern = shared/expire/$user/$mailbox
 +#  table = expires
 +#  value_field = expire_stamp
 +#
 +#  fields {
 +#    username = $user
 +#    mailbox = $mailbox
 +#  }
 +#}
 +</code>
 +
 +**__Erläuterungen__**:
 +
 +Hier müssen, für die permanente Verbindung des "Dictionary"-Servers zur SQL-Datenbank, die Verbindungsdaten gesetzt werden.
 +
 +<code ini>
 +# Tachtler
 +# default: #connect = host=localhost dbname=mails user=testuser password=pass
 +connect = host=mysql.tachtler.net dbname=postfix user=postfixuser password=geheim
 +</code>
 +
 +Da **__nicht__** die Standardtabelle von [[http://dovecot.org|Dovecot]] sondern eine Tabelle von [[http://postfixadmin.sourceforge.net/|Postfix Admin]] verwendet werden soll, sind nachfolgende Anpassungen notwendig:
 +
 +<code ini>
 +map {
 +  pattern = priv/quota/storage
 +  # Tachtler
 +  # defautl: table = quota
 +  table = domain
 +  # Tachtler
 +  # default: username_field = username
 +  username_field = domain
 +  # Tachtler
 +  # default: value_field = bytes
 +  value_field = quota
 } }
 </code> </code>
Zeile 188: Zeile 315:
 Die nachfolgende Konfiguration setzt ebenfalls voraus, dass ein **Authentifizierungsbenutzer** wie unter nachfolgendem internen Link beschrieben Die nachfolgende Konfiguration setzt ebenfalls voraus, dass ein **Authentifizierungsbenutzer** wie unter nachfolgendem internen Link beschrieben
   * [[tachtler:dovecot_centos_6#authentifizierungsbenutzer|Dovecot CentOS 6 - Konfiguration Authentifizierung - Authentifizierungsbenutzer]]   * [[tachtler:dovecot_centos_6#authentifizierungsbenutzer|Dovecot CentOS 6 - Konfiguration Authentifizierung - Authentifizierungsbenutzer]]
 +  * [[tachtler:dovecot_centos_7#authentifizierungsbenutzer|Dovecot CentOS 7 - Konfiguration Authentifizierung - Authentifizierungsbenutzer]]
 verwendet wird und somit **alle** Benutzer die gleiche **UID** und **GID** haben. verwendet wird und somit **alle** Benutzer die gleiche **UID** und **GID** haben.
  
Zeile 236: Zeile 364:
 plugin { plugin {
   #quota = dirsize:User quota   #quota = dirsize:User quota
-  #quota = maildir:User quota +  # Tachtler 
-  # Tachtler   +  # default: #quota = maildir:User quota 
-  # default#quota = dict:User quota::proxy::quota   +  # Using SQL Tables to store current quota size 
-  quota = dict:User quota::proxy::quota  +  quota = dict:Quota:%d:proxy::sqldomainquota 
 +  quota = dict:User Quota::proxy::sqluserquota 
 +  # Allow 10% more for Trash Folder 
 +  quota2_rule = Trash:storage=+10%% 
 +  #quota = dict:User quota::proxy::quota
   #quota = fs:User quota   #quota = fs:User quota
 +
 } }
  
Zeile 253: Zeile 386:
 ... ...
 </code> </code>
 +
 +==== /etc/dovecot/dovecot-sql.conf.ext ====
 +
 +:!: **WICHTIG** - **Nachfolgender interner Link beschreibt die Anpassungen an der Konfigurationsdatei**
 +  * **''/etc/dovecot/dovecot-sql.conf.ext''**
 +[[tachtler:dovecot_authentifizierung_-_sql#etc_dovecot_dovecot-sqlconfext|Dovecot Authentifizierung - SQL - /etc/dovecot/dovecot-sql.conf.ext|]]
 +
 +(* //Bereich CentOS 7 - SQL-QUOTAS//)
  
 ===== Neustart ===== ===== Neustart =====
Zeile 266: Zeile 407:
 auth_verbose = yes auth_verbose = yes
 dict { dict {
-  quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext+  sqldomainquota = mysql:/etc/dovecot/dovecot-sql-domain.conf.ext 
 +  sqluserquota = mysql:/etc/dovecot/dovecot-dict-sql-user.conf.ext
 } }
 mail_debug = yes mail_debug = yes
Zeile 300: Zeile 442:
 } }
 passdb { passdb {
-  args = scheme=CRYPT username_format=%u /etc/dovecot/users +  args = /etc/dovecot/dovecot-sql.conf.ext 
-  driver = passwd-file+  driver = sql
 } }
 plugin { plugin {
-  quota = dict:User quota::proxy::quota+  quota = dict:User Quota::proxy::sqluserquota 
 +  quota2_rule = Trash:storage=+10%%
   quota_grace = 10%%   quota_grace = 10%%
   quota_rule = *:storage=1G   quota_rule = *:storage=1G
Zeile 318: Zeile 461:
   unix_listener dict {   unix_listener dict {
     group = vmail     group = vmail
-    mode = 0600+    mode = 0660
     user = vmail     user = vmail
   }   }
Zeile 384: Zeile 527:
  
 * //**Neu** ist hier der Prozess ''dovecot/dict''// * //**Neu** ist hier der Prozess ''dovecot/dict''//
 +
 +===== Beispiel-Anzeige =====
 +
 +Nachfolgende Anzeige ist ein Ausschnitt aus der Web-Anwendung [[http://postfixadmin.sourceforge.net/|Postfix Admin]]:
 +
 +{{:tachtler:dovecot:dovecot_sql_quota_postfix_admin_cut.png|Postfix Admin Anzeige-Ausschnitt}}
  
 ===== Quota-Befehle: doveadm ===== ===== Quota-Befehle: doveadm =====
tachtler/dovecot_quotas_-_sql-backend.1491568152.txt.gz · Zuletzt geändert: 2017/04/07 14:29 von klaus