VMM/Handler: import the errors before raising them.
Rephrased the 'permission error' message.
=========
vmm.cfg
=========
---------------------------
Konfigurationsdatei für vmm
---------------------------
:Author: Pascal Volk <neverseen@users.sourceforge.net>
:Date: |today|
:Version: vmm-0.6.0
:Manual group: vmm Manual
:Manual section: 5
.. contents::
:backlinks: top
:class: htmlout
SYNOPSIS
========
vmm.cfg
BESCHREIBUNG
============
|vmm(1)|_ liest seine Konfigurationsparameter aus der Datei *vmm.cfg*.
Die Konfigurationsdatei ist in mehrere Sektionen unterteilt. Jede Sektion
wird mit dem in eckigen Klammern '**[**' und '**]**' eingefassten Namen der
Sektion eingeleitet, gefolgt von '*Option* = *Wert*' Einträgen.
Leerräume um das Gleichheitszeichen '=' und am Ende eines Wertes werden
ignoriert.
Leerzeilen und Zeilen, die mit einer '#' oder einem ';' anfangen, werden
ignoriert.
Jeder Wert ist von einem der folgenden Datentypen:
* *Boolean* um zu bestimmen, ob etwas eingeschaltet/aktiviert (true) oder
ausgeschaltet/deaktiviert (false) ist.
| Mögliche Werte für *true* sind: **1**, **yes**, **true** und **on**.
| Mögliche Werte für *false* sind: **0**, **no**, **false** und **off**.
* *Int* eine Integer-Zahl, geschrieben ohne eine gebrochene oder dezimale
Komponente.
| Beispielsweise **1**, **50** oder **321** sind Integer-Zahlen.
* *String* eine Folge von Buchstaben und Zahlen.
| Zum Beispiel: '**Wort**', '**Hallo Welt**' oder '**/usr/bin/strings**'
Die meisten Optionen haben einen Vorgabewert. Dieser ist nach dem Namen der
Option in Klammern angegebenen. Um den Vorgabewert einer Option zu
verwenden, wird die entsprechende Zeile entweder mit **#** oder **;**
auskommentiert oder die Zeile wird einfach aus der *vmm.cfg* entfernt.
Eine minimale *vmm.cfg* könnte so aussehen::
[database]
user = ich
pass = xxxxxxxx
SUCHREIHENFOLGE
---------------
Standardmäßig sucht |vmm(1)|_ die *vmm.cfg* in folgenden Verzeichnissen,
in der angegebenen Reihenfolge:
| */root*
| */usr/local/etc*
| */etc*
Die zuerst gefundene Datei wird verwendet.
SEKTIONEN
=========
Im Folgenden werden die Sektionen der *vmm.cfg* und deren Optionen
beschrieben.
ACCOUNT
-------
Die Optionen der Sektion **account** legen Konto-spezifische Einstellungen
fest.
.. _account.delete_directory:
``delete_directory (Vorgabe: false)`` : *Boolean*
Bestimmt das Verhalten von |vmm(1)|_ beim Löschen eines Kontos
(|userdelete|_). Wenn der Wert dieser Option *true* ist, wird das
Home-Verzeichnis des zu löschenden Anwenders rekursiv gelöscht.
.. _account.directory_mode:
``directory_mode (Vorgabe: 448)`` : *Int*
Zugriffsbits des Home-Verzeichnisses, sowie aller enthaltenen
Verzeichnisse, in Dezimal-Schreibweise (Basis 10).
| Beispiel: 'drwx------' -> oktal 0700 -> dezimal 448
.. _account.disk_usage:
``disk_usage (Vorgabe: false)`` : *Boolean*
Legt fest, ob die Festplattenbelegung des Maildirs eines Benutzers jedes
Mal mit **du**\(1) ermittelt und mit den Konto-Informationen ausgegeben
werden soll.
Bei umfangreichen Maildirs kann das langsam sein. Falls Sie Quotas
aktiviert haben, wird der **vmm**-Unterbefehl |userinfo|_ ebenfalls die
aktuelle Quota-Nutzung des Kontos mit ausgegeben. Sie können auch eines
der optionalen Argumente **du** oder **full** an |userinfo|_ übergeben,
um sich die aktuelle Festplattenbelegung anzeigen zu lassen.
.. _account.imap:
``imap (Vorgabe: true)`` : *Boolean*
Bestimmt, ob sich neu angelegte Benutzer per IMAP anmelden können sollen.
.. _account.password_length:
``password_length (Vorgabe: 8)`` : *Int*
Diese Option legt die Anzahl der Zeichen für automatisch erzeugte
Passwörter fest. Alle Werte kleiner als 8 werden auf 8 erhöht.
.. _account.pop3:
``pop3 (Vorgabe: true)`` : *Boolean*
Bestimmt, ob sich neu angelegte Benutzer per POP3 anmelden können sollen.
.. _account.random_password:
``random_password (Vorgabe: false)`` : *Boolean*
Mit dieser Option wird bestimmt , ob **vmm** ein zufälliges Passwort
generieren soll, wenn kein Passwort an den Unterbefehl |useradd|_
übergeben wurde. Ist der Wert dieser Option *false*, wird **vmm** Sie
auffordern, ein Passwort für den neun Account einzugeben.
Sie können die Länge für automatisch generierte Passwörter mit der Option
|account.password_length|_ konfigurieren.
.. _account.sieve:
``sieve (Vorgabe: true)`` : *Boolean*
Bestimmt, ob sich neu angelegte Benutzer per ManageSieve anmelden können
sollen.
.. _account.smtp:
``smtp (Vorgabe: true)`` : *Boolean*
Bestimmt, ob sich neu angelegte Benutzer per SMTP (SMTP AUTH) anmelden
können sollen.
Beispiel::
[account]
delete_directory = false
directory_mode = 448
disk_usage = false
random_password = true
password_length = 10
smtp = true
pop3 = true
imap = true
sieve = true
BIN
---
In der **bin**-Sektion werden die Pfade zu den von |vmm(1)|_ benötigten
Binaries angegeben.
.. _bin.dovecotpw:
``dovecotpw (Vorgabe: /usr/sbin/dovecotpw)`` : *String*
Der absolute Pfad zum dovecotpw Binary. Geben Sie den absoluten Pfad zum
doveadm Binary an, falls Sie Dovecot v2.0 verwenden. Dieses Binary wird
zur Hash-Erzeugung verwendet, wenn |misc.password_scheme|_ einen der
nachfolgenden Werte hat: 'CRAM-MD5', 'HMAC-MD5', 'LANMAN', 'OTP' 'RPA'
oder 'SKEY'. Dieses Binary wird auch benötigt, wenn Ihre
Python-Installation einen der folgenden Hash-Algorithmen nicht
unterstützt:
* md4 (hashlib + OpenSSL oder PyCrypto) verwendet für die
Passwort-Schemen: 'PLAIN-MD4' und 'NTLM'
* sha256 (hashlib oder PyCrypto >= 2.1.0alpha1) verwendet für die
Passwort-Schemen: 'SHA256' und 'SSHA256'
* sha512 (hashlib) verwendet für die Passwort-Schemen: 'SHA512' und
'SSHA512'
.. _bin.du:
``du (Vorgabe: /usr/bin/du)`` : *String*
Der absolute Pfad zu **du**\(1). Dieses Binary wird verwendet, wenn die
Festplattenbelegung eines Kontos ermittelt wird.
.. _bin.postconf:
``postconf (Vorgabe: /usr/sbin/postconf)`` : *String*
Der absolute Pfad zu Postfix' |postconf(1)|_. Dieses Binary wird
verwendet, wenn |vmm(1)|_ diverse Postfix-Einstellungen prüft, zum
Beispiel das |virtual_alias_expansion_limit|_.
Beispiel::
[bin]
dovecotpw = /usr/sbin/dovecotpw
du = /usr/bin/du
postconf = /usr/sbin/postconf
DATABASE
--------
Die **database**-Sektion wird verwendet, um die für den Datenbankzugriff
benötigten Optionen festzulegen.
.. _database.host:
``host (Vorgabe: localhost)`` : *String*
Der Hostname oder die IP-Adresse des Datenbank-Servers.
.. _database.name:
``name (Vorgabe: mailsys)`` : *String*
Der Name der zu verwendenden Datenbank.
.. _database.pass:
``pass (Vorgabe: Nichts)`` : *String*
Das Passwort des Datenbank-Benutzers.
.. _database.user:
``user (Vorgabe: Nichts)`` : *String*
Der Name des Datenbank-Benutzers.
Beispiel::
[database]
host = localhost
user = vmm
pass = PY_SRJ}L/0p-oOk
name = mailsys
DOMAIN
------
In der **domain**-Sektion werden Domain-spezifische Informationen
konfiguriert.
.. _domain.auto_postmaster:
``auto_postmaster (Vorgabe: true)`` : *Boolean*
Ist der Wert dieser Option *true*, wird |vmm(1)|_ beim Anlegen einer
Domain (|domainadd|_) automatisch einen postmaster-Account erstellen.
.. _domain.delete_directory:
``delete_directory (Vorgabe: false)`` : *Boolean*
Bestimmt, ob beim Löschen einer Domain (|domaindelete|_) das Verzeichnis
der zu löschenden Domain, inklusive aller Anwender-Verzeichnisse, rekursiv
gelöscht werden soll.
.. _domain.directory_mode:
``directory_mode (Vorgabe: 504)`` : *Int*
Zugriffsbits des Domain-Verzeichnisses in Dezimal-Schreibweise (Basis 10).
| Beispiel: 'drwxrwx---' -> oktal 0770 -> dezimal 504
.. _domain.force_deletion:
``force_deletion (Vorgabe: false)`` : *Boolean*
Erzwingt das Löschen aller zugeordneten Konten und Aliase beim Löschen
einer Domain (|domaindelete|_).
Beispiel::
[domain]
auto_postmaster = true
delete_directory = false
directory_mode = 504
force_deletion = false
MAILBOX
-------
In der **mailbox**-Sektion werden die für die Erstellung von Mailboxen
erforderlichen Optionen festgelegt. Die INBOX wird in jedem Fall erstellt.
.. _mailbox.folders:
``folders (Vorgabe: Drafts:Sent:Templates:Trash)`` : *String*
Eine durch Doppelpunkten getrennte Liste mit Mailboxnamen die
erstellt werden sollen. (Wird derzeit nur berücksichtigt, wenn
|mailbox.format|_ entweder **maildir** oder **mbox** ist. Sollte das
gewählte Format ein anderes sein, kann Dovecots autocreate Plugin
<http://wiki.dovecot.org/Plugins/Autocreate> verwendet werden.) Sollen
keine zusätzlichen Mailboxen angelegt werden, ist dieser Optionen ein
einzelner Doppelpunkt ('**:**') als Wert zuzuweisen.
Sollen Verzeichnisse mit Unterverzeichnissen angelegt werden, ist ein
einzelner Punkt ('**.**') als Separator zu verwenden.
.. _mailbox.format:
``format (Vorgabe: maildir)`` : *String*
Das zu verwendende Format der Mailbox der Benutzer. Abhängig von der
verwendeten Dovecot-Version, stehen bis zu vier Formate zur Verfügung:
``maildir``
seit Dovecot v1.0.0
``mbox``
seit Dovecot v1.0.0
``dbox``
seit Dovecot v1.0.0
``mdbox``
seit Dovecot v2.0.0
Beispiel::
[mailbox]
folders = Drafts:Sent:Templates:Trash:Lists.Dovecot:Lists.Postfix
format = maildir
.. _imap_uft7:
.. note:: Sollen in der **folders**-Einstellung internationalisierte Namen
für Maildir-Verzeichnisse verwendet werden, sind diese in einer
modifizierten Variante des UTF-7-Zeichensatzes (siehe :RFC:`3501`, Sektion
5.1.3) anzugeben.
Dovecot stellt seit Version 1.2.0 das nützlich Hilfsprogramm **imap-utf7**
zur Verfügung. Dieses dient zur mUTF-7 <-> UTF-8 Konvertierung.
..
imap-utf7 Beispiel::
user@host:~$ /usr/local/libexec/dovecot/imap-utf7 -r Wysłane
Wys&AUI-ane
user@host:~$ /usr/local/libexec/dovecot/imap-utf7 "&AVo-mietnik"
Śmietnik
MISC
----
In der **misc**-Sektion werden verschiedene Einstellungen festgelegt.
.. _misc.base_directory:
``base_directory (Vorgabe: /srv/mail)`` : *String*
Alle Domain-Verzeichnisse werden innerhalb dieses Basis-Verzeichnisses
angelegt.
.. _misc.crypt_blowfish_rounds:
``crypt_blowfish_rounds (Vorgabe: 0)`` : *Int*
Anzahl der Verschlüsselungsdurchgänge für Blowfish-Crypt.
Diese Einstellung beeinflusst das Verhalten des 'CRYPT'-Passwortschematas.
Standardmäßig verwendet crypt den DES-Algorithmus für die
Kennwortverschlüsselung. |vmm(1)|_ prüft, ob Blowfish-Crypt verfügbar
ist. Wenn der Blowfishalgorithmus unterstützt wird und der Wert dieser
Einstellung größer als 0 ist, wird Blowfish anstelle von DES als
Algorithmus verwendet.
Der Wert muss im Bereich von **4** - **31** liegen.
.. _misc.crypt_sha256_rounds:
``crypt_sha256_rounds (Vorgabe: 0)`` : *Int*
Anzahl der Verschlüsselungdurchgänge für crypt unter Verwendung der SHA-256
Verschlüsselungsmethode.
Diese Einstellung beeinflusst das Verhalten des 'CRYPT'-Passwortschematas.
Standardmäßig verwendet crypt den DES-Algorithmus für die
Kennwortverschlüsselung. |vmm(1)|_ prüft, ob crypt die SHA-256 und/oder
SHA-512 Algorithmen unterstützt. Wenn die Algorithmen unterstützt werden
und der Wert dieser Einstellung größer als 0 ist, wird SHA-256 anstelle
von DES als Algorithmus verwendet.
Wenn der Wert von |misc.crypt_sha512_rounds|_ größer als 0 ist, wird der
SHA-512 Algorithmus anstelle von SHA-256 verwendet.
Der Wert muss im Bereich von **1000** - **999999999** liegen.
.. _misc.crypt_sha512_rounds:
``crypt_sha512_rounds (Vorgabe: 0)`` : *Int*
Anzahl der Verschlüsselungsdurchgänge für crypt unter Verwendung
der SHA-512 Verschlüsselungsmethode.
Siehe |misc.crypt_sha256_rounds|_ für Details.
Der Wert muss im Bereich von **1000** - **999999999** liegen.
.. _misc.password_scheme:
``password_scheme (Vorgabe: CRAM-MD5)`` : *String*
Das zu verwendende Passwort-Schema. Um eine Liste aller verfügbaren
Passwort-Schemata zu erhalten, für Sie das Kommando **dovecotpw -l**
(Dovecot v1.x) oder **doveadm pw -l** (Dovecot v2.0) aus.
.. _misc.transport:
``transport (Vorgabe: dovecot:)`` : *String*
Der Standard-Transport aller Domains und Konten. Siehe auch:
|transport(5)|_
.. _misc.dovecot_version:
``dovecot_version (Vorgabe: 1.2.11)`` : *String*
Die eingesetzten Dovecot-Version. (siehe: **dovecot --version**).
Wenn das Kommando **dovecot --version** zum Beispiel
*2.0.beta4 (8818db00d347)* ausgibt, ist dieser Option der Wert
**2.0.beta4** zuzuweisen.
Beispiel::
[misc]
base_directory = /srv/mail
crypt_sha512_rounds = 10000
password_scheme = CRYPT
transport = dovecot:
dovecot_version = 2.0.beta4
DATEIEN
=======
*/root/vmm.cfg*
| Wird verwendet, falls vorhanden.
*/usr/local/etc/vmm.cfg*
| Wird verwendet, sollte obige Datei nicht gefunden werden.
*/etc/vmm.cfg*
| Wird verwendet, falls obengenannte Dateien nicht existieren.
SIEHE AUCH
==========
|vmm(1)|_
COPYING
=======
vmm und die dazugehörigen Manualseiten wurden von Pascal Volk geschrieben
und sind unter den Bedingungen der BSD Lizenz lizenziert.
.. include:: ../../substitute_links.rst
.. include:: ../../substitute_links_5.rst