--- a/INSTALL Fri Jan 22 04:22:59 2010 +0000
+++ b/INSTALL Fri Jan 22 04:31:38 2010 +0000
@@ -9,13 +9,18 @@
Configuring PostgreSQL
+(for more details see: http://vmm.localdomain.org/PreparingPostgreSQL)
-* /etc/postgresql/8.2/main/pg_hba.conf
+* /etc/postgresql/8.4/main/pg_hba.conf
+ [ if you prefer to connect via TCP/IP ]
# IPv4 local connections:
host mailsys +mailsys 127.0.0.1/32 md5
+ [ if you want to connect through a local Unix-domain socket ]
+ # "local" is for Unix domain socket connections only
+ local mailsys +mailsys md5
# reload configuration
- /etc/init.d/postgresql-8.2 force-reload
+ /etc/init.d/postgresql-8.4 force-reload
* Create a DB user if necessary:
DB Superuser:
@@ -23,24 +28,25 @@
DB User:
createuser -d -E -e -P $USERNAME
-* Create Database and db users for Postfix and Dovecot
+* Create Database and db users for vmm, Postfix and Dovecot
connecting to PostgreSQL:
psql template1
- # create database
- CREATE DATABASE mailsys ENCODING 'UTF8';
+ # create users, group and the database
+ CREATE USER vmm ENCRYPTED PASSWORD 'DB PASSWORD for vmm';
+ CREATE USER dovecot ENCRYPTED password 'DB PASSWORD for Dovecot';
+ CREATE USER postfix ENCRYPTED password 'DB PASSWORD for Postfix';
+ CREATE ROLE mailsys WITH USER postfix, dovecot, vmm;
+ CREATE DATABASE mailsys WITH OWNER vmm ENCODING 'UTF8';
+ \q
+
# connect to the new database
- \c mailsys
+ psql mailsys vmm -W -h 127.0.0.1
# either import the database structure for Dovecot v1.0.x/v1.1.x
\i /path/to/create_tables.pgsql
# or import the database structure for Dovecot v1.2.x
\i /path/to/create_tables-dovecot-1.2.x.pgsql
- # create users and group
- CREATE USER postfix ENCRYPTED password 'DB PASSWORD for Postfix';
- CREATE USER dovecot ENCRYPTED password 'DB PASSWORD for Dovecot';
- CREATE ROLE mailsys WITH USER postfix, dovecot;
-
# set permissions
GRANT SELECT ON dovecot_password, dovecot_user TO dovecot;
GRANT SELECT ON postfix_alias, postfix_gid, postfix_maildir,
--- a/TODO Fri Jan 22 04:22:59 2010 +0000
+++ b/TODO Fri Jan 22 04:31:38 2010 +0000
@@ -1,3 +1,8 @@
+Config
+ cfs - configset sect.opt val
+ cfg - configget sect.opt
+
+ ds - domainservices: smtp pop imap sieve???
- Aliases
- avoid looping aliases
--- a/VirtualMailManager/Config.py Fri Jan 22 04:22:59 2010 +0000
+++ b/VirtualMailManager/Config.py Fri Jan 22 04:31:38 2010 +0000
@@ -26,8 +26,8 @@
ConfigParser.__init__(self)
self.__cfgFileName = filename
self.__cfgFile = None
- self.__VMMsections = ['database', 'maildir', 'services', 'domdir',
- 'bin', 'misc', 'config']
+ self.__VMMsections = ('account', 'bin', 'database', 'domain',
+ 'maildir', 'misc', 'config')
self.__changes = False
self.__missing = {}
self.__dbopts = [
@@ -39,20 +39,23 @@
self.__mdopts = [
['name', 'Maildir'],
['folders', 'Drafts:Sent:Templates:Trash'],
- ['mode', 448],
- ['diskusage', 'false'],
- ['delete', 'false']
]
- self.__serviceopts = [
+ self.__accountopts = [
+ ['delete_directory', 'false'],
+ ['directory_mode', 448],
+ ['disk_usage', 'false'],
+ ['password_length', 8],
+ ['random_password', 'false'],
['smtp', 'true'],
['pop3', 'true'],
['imap', 'true'],
['sieve', 'true']
]
self.__domdopts = [
- ['base', '/srv/mail'],
- ['mode', 504],
- ['delete', 'false']
+ ['auto_postmaster', 'true'],
+ ['delete_directory', 'false'],
+ ['directory_mode', 504],
+ ['force_deletion', 'false'],
]
self.__binopts = [
['dovecotpw', '/usr/sbin/dovecotpw'],
@@ -60,11 +63,11 @@
['postconf', '/usr/sbin/postconf']
]
self.__miscopts = [
- ['passwdscheme', 'PLAIN'],
+ ['base_directory', '/srv/mail'],
+ ['dovecot_version', '11'],
['gid_mail', 8],
- ['forcedel', 'false'],
+ ['password_scheme', 'PLAIN'],
['transport', 'dovecot:'],
- ['dovecotvers', '11']
]
def load(self):
@@ -168,9 +171,9 @@
opts = self.__dbopts
elif section == 'maildir':
opts = self.__mdopts
- elif section == 'services':
- opts = self.__serviceopts
- elif section == 'domdir':
+ elif section == 'account':
+ opts = self.__accountopts
+ elif section == 'domain':
opts = self.__domdopts
elif section == 'bin':
opts = self.__binopts
--- a/VirtualMailManager/VirtualMailManager.py Fri Jan 22 04:22:59 2010 +0000
+++ b/VirtualMailManager/VirtualMailManager.py Fri Jan 22 04:31:38 2010 +0000
@@ -51,7 +51,7 @@
self.__Cfg.load()
self.__Cfg.check()
self.__cfgSections = self.__Cfg.getsections()
- self.__scheme = self.__Cfg.get('misc', 'passwdscheme')
+ self.__scheme = self.__Cfg.get('misc', 'password_scheme')
self._postconf = Postconf(self.__Cfg.get('bin', 'postconf'))
if not os.sys.argv[1] in ['cf', 'configure']:
self.__chkenv()
@@ -83,16 +83,16 @@
def __chkenv(self):
""""""
- if not os.path.exists(self.__Cfg.get('domdir', 'base')):
+ basedir = self.__Cfg.get('misc', 'base_directory')
+ if not os.path.exists(basedir):
old_umask = os.umask(0006)
- os.makedirs(self.__Cfg.get('domdir', 'base'), 0771)
- os.chown(self.__Cfg.get('domdir', 'base'), 0,
- self.__Cfg.getint('misc', 'gid_mail'))
+ os.makedirs(basedir, 0771)
+ os.chown(basedir, 0, self.__Cfg.getint('misc', 'gid_mail'))
os.umask(old_umask)
- elif not os.path.isdir(self.__Cfg.get('domdir', 'base')):
+ elif not os.path.isdir(basedir):
raise VMMException(_(u'“%s” is not a directory.\n\
-(vmm.cfg: section "domdir", option "base")') %
- self.__Cfg.get('domdir', 'base'), ERR.NO_SUCH_DIRECTORY)
+(vmm.cfg: section "misc", option "base_directory")') %
+ basedir, ERR.NO_SUCH_DIRECTORY)
for opt, val in self.__Cfg.items('bin'):
if not os.path.exists(val):
raise VMMException(_(u'“%(binary)s” doesn\'t exist.\n\
@@ -237,7 +237,7 @@
transport = self.__Cfg.get('misc', 'transport')
self.__dbConnect()
return Domain(self.__dbh, domainname,
- self.__Cfg.get('domdir', 'base'), transport)
+ self.__Cfg.get('misc', 'base_directory'), transport)
def __getDiskUsage(self, directory):
"""Estimate file space usage for the given directory.
@@ -259,7 +259,7 @@
def __makedir(self, directory, mode=None, uid=None, gid=None):
if mode is None:
- mode = self.__Cfg.getint('maildir', 'mode')
+ mode = self.__Cfg.getint('account', 'directory_mode')
if uid is None:
uid = 0
if gid is None:
@@ -270,17 +270,17 @@
def __domDirMake(self, domdir, gid):
os.umask(0006)
oldpwd = os.getcwd()
- basedir = self.__Cfg.get('domdir', 'base')
+ basedir = self.__Cfg.get('misc', 'base_directory')
domdirdirs = domdir.replace(basedir+'/', '').split('/')
os.chdir(basedir)
if not os.path.isdir(domdirdirs[0]):
self.__makedir(domdirdirs[0], 489, 0,
- self.__Cfg.getint('misc', 'gid_mail'))
+ self.__Cfg.getint('misc', 'gid_mail'))
os.chdir(domdirdirs[0])
os.umask(0007)
- self.__makedir(domdirdirs[1], self.__Cfg.getint('domdir', 'mode'), 0,
- gid)
+ self.__makedir(domdirdirs[1],
+ self.__Cfg.getint('domain', 'directory_mode'), 0, gid)
os.chdir(oldpwd)
def __subscribeFL(self, folderlist, uid, gid):
@@ -313,7 +313,7 @@
and re.match(RE_MBOX_NAMES, folder):
folders.append('%s/.%s' % (maildir, folder))
subdirs = ['cur', 'new', 'tmp']
- mode = self.__Cfg.getint('maildir', 'mode')
+ mode = self.__Cfg.getint('account', 'directory_mode')
self.__makedir('%s' % uid, mode, uid, gid)
os.chdir('%s' % uid)
@@ -348,7 +348,7 @@
if gid > 0:
if not self.__isdir(domdir):
return
- basedir = self.__Cfg.get('domdir', 'base')
+ basedir = self.__Cfg.get('misc', 'base_directory')
domdirdirs = domdir.replace(basedir+'/', '').split('/')
domdirparent = os.path.join(basedir, domdirdirs[0])
if basedir.count('..') or domdir.count('..'):
@@ -487,7 +487,8 @@
dom = self.__getDomain(domainname)
gid = dom.getID()
domdir = dom.getDir()
- if self.__Cfg.getboolean('misc', 'forcedel') or force == 'delall':
+ if self.__Cfg.getboolean('domain', 'force_deletion')\
+ or force == 'delall':
dom.delete(True, True)
elif force == 'deluser':
dom.delete(delUser=True)
@@ -495,7 +496,7 @@
dom.delete(delAlias=True)
else:
dom.delete()
- if self.__Cfg.getboolean('domdir', 'delete'):
+ if self.__Cfg.getboolean('domain', 'delete_directory'):
self.__domDirDelete(domdir, gid)
def domainInfo(self, domainname, details=None):
@@ -589,11 +590,11 @@
password = self._readpass()
acc.setPassword(self.__pwhash(password))
acc.save(self.__Cfg.get('maildir', 'name'),
- self.__Cfg.getint('misc', 'dovecotvers'),
- self.__Cfg.getboolean('services', 'smtp'),
- self.__Cfg.getboolean('services', 'pop3'),
- self.__Cfg.getboolean('services', 'imap'),
- self.__Cfg.getboolean('services', 'sieve'))
+ self.__Cfg.getint('misc', 'dovecot_version'),
+ self.__Cfg.getboolean('account', 'smtp'),
+ self.__Cfg.getboolean('account', 'pop3'),
+ self.__Cfg.getboolean('account', 'imap'),
+ self.__Cfg.getboolean('account', 'sieve'))
self.__mailDirMake(acc.getDir('domain'), acc.getUID(), acc.getGID())
def aliasAdd(self, aliasaddress, targetaddress):
@@ -615,7 +616,7 @@
uid = acc.getUID()
gid = acc.getGID()
acc.delete(force)
- if self.__Cfg.getboolean('maildir', 'delete'):
+ if self.__Cfg.getboolean('account', 'delete_directory'):
try:
self.__userDirDelete(acc.getDir('domain'), uid, gid)
except VMMException, e:
@@ -643,8 +644,8 @@
raise VMMException(_(u'Invalid argument: “%s”') % details,
ERR.INVALID_AGUMENT)
acc = self.__getAccount(emailaddress)
- info = acc.getInfo(self.__Cfg.getint('misc', 'dovecotvers'))
- if self.__Cfg.getboolean('maildir', 'diskusage')\
+ info = acc.getInfo(self.__Cfg.getint('misc', 'dovecot_version'))
+ if self.__Cfg.getboolean('account', 'disk_usage')\
or details in ['du', 'full']:
info['disk usage'] = self.__getDiskUsage('%(maildir)s' % info)
if details in [None, 'du']:
@@ -682,7 +683,7 @@
in a future release.\n\
Please use the service name “sieve” instead.'))
acc = self.__getAccount(emailaddress)
- acc.disable(self.__Cfg.getint('misc', 'dovecotvers'), service)
+ acc.disable(self.__Cfg.getint('misc', 'dovecot_version'), service)
def userEnable(self, emailaddress, service=None):
if service == 'managesieve':
@@ -692,7 +693,7 @@
in a future release.\n\
Please use the service name “sieve” instead.'))
acc = self.__getAccount(emailaddress)
- acc.enable(self.__Cfg.getint('misc', 'dovecotvers'), service)
+ acc.enable(self.__Cfg.getint('misc', 'dovecot_version'), service)
def relocatedAdd(self, emailaddress, targetaddress):
relocated = self.__getRelocated(emailaddress, targetaddress)
--- a/install.sh Fri Jan 22 04:22:59 2010 +0000
+++ b/install.sh Fri Jan 22 04:31:38 2010 +0000
@@ -26,7 +26,7 @@
exit 1
fi
-python setup.py -q install --prefix ${PREFIX}
+python setup.py -q install --force --prefix ${PREFIX}
python setup.py clean --all >/dev/null
install -b -m 0600 ${INSTALL_OPTS} vmm.cfg ${PREFIX}/etc/
@@ -50,7 +50,7 @@
[ -d ${MANDIR}/man5 ] || mkdir -m 0755 -p ${MANDIR}/man5
install -m 0644 ${INSTALL_OPTS} man5/vmm.cfg.5 ${MANDIR}/man5
-for l in $(find . -maxdepth 1 -mindepth 1 -type d \! -name man\? \! -name .svn)
+for l in $(find . -maxdepth 1 -mindepth 1 -type d \! -name man\?)
do
for s in man1 man5; do
[ -d ${MANDIR}/${l}/${s} ] || mkdir -m 0755 -p ${MANDIR}/${l}/${s}
--- a/man/de/man5/vmm.cfg.5 Fri Jan 22 04:22:59 2010 +0000
+++ b/man/de/man5/vmm.cfg.5 Fri Jan 22 04:31:38 2010 +0000
@@ -1,273 +1,458 @@
-.TH vmm.cfg 5 "17 Aug 2009" "Pascal Volk"
+.\" Man page generated from reStructeredText.
+.
+.TH VMM.CFG 5 "2010-01-18" "vmm-0.6.0" "vmm Manual"
.SH NAME
vmm.cfg \- Konfigurationsdatei für vmm
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
.SH SYNOPSIS
+.sp
vmm.cfg
.SH BESCHREIBUNG
-\fBvmm\fR(1) liest Konfigurationsparameter aus der Datei \fIvmm.cfg\fP.
-.br
+.sp
+\fBvmm\fP(1) liest seine Konfigurationsparameter aus der Datei \fIvmm.cfg\fP.
+.sp
Die Konfigurationsdatei ist in mehrere Abschnitte unterteilt. Jeder Abschnitt
-wird mit dem, in eckigen Klammern '[' und ']' eingefassten, Namen des Abschnitts
-eingeleitet (z. B. \fB[database]\fP), gefolgt von \'Option = Wert\' Einträgen
-(Z. B. \fBhost = 127.0.0.1\fP).
-.br
-Leerräume um das Gleichheitszeichen '=' und am Ende eine Wertes werden
+wird mit dem, in eckigen Klammern \(aq\fB[\fP\(aq und \(aq\fB]\fP\(aq eingefassten, Namen des
+Abschnitts eingeleitet, gefolgt von \(aq\fIOption\fP = \fIWert\fP\(aq Einträgen:
+.sp
+.nf
+.ft C
+[database]
+host = 127.0.0.1
+.ft P
+.fi
+.sp
+Leerräume um das Gleichheitszeichen \(aq=\(aq und am Ende eines Wertes werden
ignoriert.
-.PP
-Leerzeilen und Zeilen, die mit einer '#' oder einem ';' anfangen, werden
+.sp
+Leerzeilen und Zeilen, die mit einer \(aq#\(aq oder einem \(aq;\(aq anfangen, werden
ignoriert.
-.PP
+.sp
Jeder Wert ist von einem der folgenden Datentypen:
-.IP \(bu
-.I Boolean
-um zu bestimmen, ob etwas eingeschaltet/aktiviert (true) oder
+.INDENT 0.0
+.IP \(bu 2
+.
+\fIBoolean\fP um zu bestimmen, ob etwas eingeschaltet/aktiviert (true) oder
ausgeschaltet/deaktiviert (false) ist.
-.br
-Mögliche Werte für \fBtrue\fP sind: \fB1\fP, \fByes\fP, \fBtrue\fP und \fBon\fP.
-.br
-Mögliche Werte für \fBfalse\fP sind: \fB0\fP, \fBno\fP, \fBfalse\fP und
-\fBoff\fP.
-.IP \(bu
-.I Int
-eine Integer-Zahl, geschrieben ohne eine gebrochene oder dezimale Komponente.
-.br
-Beispielsweise sind \fB1\fP, \fB50\fP oder \fB321\fP Integer-Zahlen.
-.IP \(bu
-.I String
-eine Folge von Buchstaben und Zahlen.
-.br
-Zum Beispiel: '\fBWort\fP', '\fBHallo Welt\fP', oder '\fB/usr/bin/strings\fP'
+.nf
+Mögliche Werte für \fItrue\fP sind: \fB1\fP, \fByes\fP, \fBtrue\fP und \fBon\fP.
+Mögliche Werte für \fIfalse\fP sind: \fB0\fP, \fBno\fP, \fBfalse\fP und \fBoff\fP.
+.fi
+.sp
+.IP \(bu 2
+.
+\fIInt\fP eine Integer\-Zahl, geschrieben ohne eine gebrochene oder dezimale
+Komponente.
+.nf
+Beispielsweise \fB1\fP, \fB50\fP oder \fB321\fP sind Integer\-Zahlen.
+.fi
+.sp
+.IP \(bu 2
+.
+\fIString\fP eine Folge von Buchstaben und Zahlen.
+.nf
+Zum Beispiel: \(aq\fBWort\fP\(aq, \(aq\fBHallo Welt\fP\(aq oder \(aq\fB/usr/bin/strings\fP\(aq
+.fi
+.sp
+.UNINDENT
.SS SUCHREIHENFOLGE
-Standardmäßig sucht vmm die \fIvmm.cfg\fP in folgenden Verzeichnissen, in dieser
-Reihenfolge:
-.RS
-.PD 0
+.sp
+Standardmäßig sucht \fBvmm\fP(1) die \fIvmm.cfg\fP in folgenden Verzeichnissen,
+in der angegebenen Reihenfolge:
+.INDENT 0.0
+.INDENT 3.5
+.nf
+\fI/root\fP
+\fI/usr/local/etc\fP
+\fI/etc\fP
+.fi
+.sp
+.UNINDENT
+.UNINDENT
+.sp
+Die zuerst gefundene Datei wird verwendet.
+.SH ABSCHNITTE
+.sp
+Im Folgenden werden die Abschnitte der \fIvmm.cfg\fP und deren Optionen
+beschrieben.
+.SS ACCOUNT
+.sp
+Die Optionen des Abschnitts \fBaccount\fP legen Konto\-spezifische
+Einstellungen fest.
+.INDENT 0.0
.TP
-.I
-/root
-.TP
-.I
-/usr/local/etc
+.B \fCdelete_directory\fP
+\fIBoolean\fP
+.sp
+Bestimmt das Verhalten von \fBvmm\fP(1) beim Löschen eines Kontos.
+Wenn der Wert dieser Option \fItrue\fP ist, wird das Home\-Verzeichnis des
+zu löschenden Anwenders rekursiv gelöscht.
.TP
-.I
-/etc
-.PD
-.RE
-.PP
-Die zuerst gefundene Datei wird verwendet.
-.\" -----
-.SH DATABASE ABSCHNITT
-Der \fBdatabase\fP-Abschnitt wird verwendet, um die für den Datenbankzugriff
-benötigten Optionen festzulegen.
-.TP
-\fBhost\fP (\fIString\fP)
-Der Hostname oder die IP-Adresse des Datenbank-Servers.
-.TP
-\fBuser\fP (\fIString\fP)
-Der Name des Datenbank-Benutzers.
-.TP
-\fBpass\fP (\fIString\fP)
-Das Passwort des Datenbank-Benutzers
+.B \fCdirectory_mode\fP
+\fIInt\fP
+.sp
+Zugriffsbits des Home\-Verzeichnisses, sowie aller enthaltenen
+Verzeichnisse, in Dezimal\-Schreibweise (Basis 10).
+.nf
+Beispiel: \(aqdrwx\-\-\-\-\-\-\(aq \-> oktal 0700 \-> dezimal 448
+.fi
+.sp
.TP
-\fBname\fP (\fIString\fP)
-Name der zu verwendenden Datenbank.
+.B \fCdisk_usage\fP
+\fIBoolean\fP
+.sp
+Legt fest, ob die Festplattenbelegung des Maildirs eines Benutzers jedes
+Mal mit \fBdu\fP(1) ermittelt und mit den Konto\-Informationen ausgegeben
+werden soll.
+.sp
+Bei umfangreichen Maildirs kann das langsam sein. Falls Sie Quotas
+aktiviert haben, wird der \fBvmm\fP\-Unterbefehl \fBuserinfo\fP ebenfalls
+die aktuelle Quota\-Nutzung des Kontos mit ausgegeben. Sie können auch
+eines der optionalen Argumente \fBdu\fP oder \fBfull\fP an \fBuserinfo\fP
+übergeben, um sich die aktuelle Festplattenbelegung anzeigen zu lassen.
+.TP
+.B \fCimap\fP
+\fIBoolean\fP
+.sp
+Bestimmt, ob sich neu angelegte Benutzer per IMAP anmelden können sollen.
.TP
-\fBBeispiel\fP:
-[database]
-.br
-host = localhost
-.br
-user = vmm
-.br
-pass = T~_:L4OYyl]TU?)
-.br
-name = mailsys
-.\" -----
-.SH MAILDIR ABSCHNITT
-Im \fBmaildir\fP-Abschnitt werden die für die Maildirs erforderlichen Optionen
-festgelegt.
+.B \fCpassword_length\fP
+\fIInt\fP
+.sp
+Diese Option legt die Anzahl der Zeichen für automatisch erzeugte
+Passwörter fest. Alle Werte kleiner als 8 werden auf 8 erhöht.
+.TP
+.B \fCpop3\fP
+.sp
+Bestimmt, ob sich neu angelegte Benutzer per POP3 anmelden können sollen.
.TP
-\fBname\fP (\fIString\fP)
-Standard-Name des Maildir-Verzeichnisses im Verzeichnis des jeweiligen
-Anwenders.
+.B \fCrandom_password\fP
+\fIBoolean\fP
+.sp
+Mit dieser Option wird bestimmt , ob \fBvmm\fP(1) ein zufälliges Passwort
+generieren soll, wenn kein Passwort an den \fBuseradd\fP Unterbefehl
+übergeben wurde. Ist der Wert dieser Option \fIfalse\fP, wird \fBvmm\fP Sie
+auffordern, ein Passwort für den neun Account einzugeben.
+.sp
+Sie können die Länge für automatisch generierte Passwörter mit der
+Option \fBpassword_length\fP konfigurieren.
.TP
-\fBfolders\fP (\fIString\fP)
-Eine durch Doppelpunkten getrennte Liste mit Verzeichnisnamen, die innerhalb des
-Maildirs erstellt werden sollen.
-.br
-Sollen innerhalb des Maildirs keine Verzeichnisse angelegt werden, ist dieser
-Optionen ein einzelner Doppelpunkt (':') als Wert zuzuweisen.
-.TP
-\fBmode\fP (\fIInt\fP)
-Zugriffsbits des Maildirs in Dezimal-Schreibweise (Basis 10).
-.br
-Beispiel: \'drwx------' -> oktal 0700 -> dezimal 448
+.B \fCsieve\fP
+\fIBoolean\fP
+.sp
+Bestimmt, ob sich neu angelegte Benutzer per ManageSieve anmelden
+können sollen.
.TP
-\fBdiskusage\fP (\fIBoolean\fP)
-Legt fest, ob die Festplattenbelegung des Maildirs jedes Mal, wenn
-Konto-Informationen ausgegeben werden, ermittelt und mit ausgegeben werden
-sollen.
-.TP
-\fBdelete\fP (\fIBoolean\fP)
-Bestimmt, ob das Maildir rekursiv gelöscht werden soll, wenn ein Konto gelöscht
-wird.
+.B \fCsmtp\fP
+\fIBoolean\fP
+.sp
+Bestimmt, ob sich neu angelegte Benutzer per SMTP (SMTP AUTH) anmelden
+können sollen.
+.UNINDENT
+.sp
+Beispiel:
+.sp
+.nf
+.ft C
+[account]
+delete_directory = false
+directory_mode = 448
+disk_usage = false
+random_password = true
+password_length = 10
+smtp = true
+pop3 = true
+imap = true
+sieve = true
+.ft P
+.fi
+.SS BIN
+.sp
+Im \fBbin\fP\-Abschnitt werden Pfade zu Binaries angegeben, die von
+\fBvmm\fP(1) benötigt werden.
+.INDENT 0.0
.TP
-\fBBeispiel\fP:
-[maildir]
-.br
-name = Maildir
-.br
-folders = Drafts:Sent:Templates:Trash:INBOX.News
-.br
-mode = 448
-.br
-diskusage = false
-.br
-delete = false
-.\" -----
-.SH SERVICES ABSCHNITT
-Im \fBservices\fP-Abschnitt werden die Standard-Beschränkungen für alle Konten
-festgelegt.
+.B \fCdovecotpw\fP
+\fIString\fP
+.sp
+Der absolute Pfad zum dovecotpw Binary. Dieses Binary wird zur
+Hash\-Erzeugung verwendet, wenn \fBmisc.password_scheme\fP einen der
+nachfolgenden Werte hat: \(aqSMD5\(aq, \(aqSSHA\(aq, \(aqCRAM\-MD5\(aq, \(aqHMAC\-MD5\(aq,
+\(aqLANMAN\(aq, \(aqNTLM\(aq oder \(aqRPA\(aq.
+.TP
+.B \fCdu\fP
+\fIString\fP
+.sp
+Der absolute Pfad zu \fBdu\fP(1). Dieses Binary wird verwendet, wenn
+die Festplattenbelegung eines Kontos ermittelt wird.
.TP
-\fBsmtp\fP (\fIBoolean\fP)
-Legt fest, ob sich ein Anwender standardmäßig per SMTP einloggen kann.
-.TP
-\fBpop3\fP (\fIBoolean\fP)
-Legt fest, ob sich ein Anwender standardmäßig per POP3 einloggen kann.
-.TP
-\fBimap\fP (\fIBoolean\fP)
-Legt fest, ob sich ein Anwender standardmäßig per IMAP einloggen kann.
+.B \fCpostconf\fP
+\fIString\fP
+.sp
+Der absolute Pfad zu Postfix\(aq \fBpostconf\fP(1). Dieses Binary wird
+verwendet, wenn \fBvmm\fP(1) diverse Postfix\-Einstellungen prüft, zum
+Beispiel das \fIvirtual_alias_expansion_limit\fP.
+.UNINDENT
+.sp
+Beispiel:
+.sp
+.nf
+.ft C
+[bin]
+dovecotpw = /usr/sbin/dovecotpw
+du = /usr/bin/du
+postconf = /usr/sbin/postconf
+.ft P
+.fi
+.SS CONFIG
+.sp
+Beim \fBconfig\fP\-Abschnitt handelt es sich um einen internen
+Steuerungs\-Abschnitt.
+.INDENT 0.0
.TP
-\fBsieve\fP (\fIBoolean\fP)
-Legt fest, ob sich ein Anwender standardmäßig per MANAGESIEVE einloggen kann.
+.B \fCdone\fP
+\fIBoolean\fP
+.sp
+Diese Option hat den Wert \fIfalse\fP, wenn \fBvmm\fP(1) zum ersten Mal
+installiert wurde. Wenn Sie die Datei \fIvmm.cfg\fP von Hand editieren,
+weisen Sie dieser Option abschließend den Wert \fItrue\fP zu. Wird die
+Konfiguration über das Kommando \fBvmm configure\fP angepasst, wird der
+Wert dieser Option automatisch auf \fItrue\fP gesetzt.
+.sp
+Ist der Wert dieser Option \fIfalse\fP, so startet \fBvmm\fP(1) beim
+nächsten Aufruf im interaktiven Konfigurations\-Modus.
+.UNINDENT
+.sp
+Beispiel:
+.sp
+.nf
+.ft C
+[config]
+done = true
+.ft P
+.fi
+.SS DATABASE
+.sp
+Der \fBdatabase\fP\-Abschnitt wird verwendet, um die für den Datenbankzugriff
+benötigten Optionen festzulegen.
+.INDENT 0.0
.TP
-\fBBeispiel\fP:
-[services]
-.br
-smtp = true
-.br
-pop3 = true
-.br
-imap = false
-.br
-sieve = false
-.\" -----
-.SH DOMDIR ABSCHNITT
-Im \fBdomdir\fP-Abschnitt werden die Optionen der Domain-Verzeichnisse bestimmt.
+.B \fChost\fP
+\fIString\fP
+.sp
+Der Hostname oder die IP\-Adresse des Datenbank\-Servers.
.TP
-\fBbase\fP (\fIString\fP)
-Alle Domain-Verzeichnisse werden unterhalb dieses Basis-Verzeichnisses angelegt.
+.B \fCname\fP
+\fIString\fP
+.sp
+Der Name der zu verwendenden Datenbank.
.TP
-\fBmode\fP (\fIInt\fP)
-Zugriffsbits des Domain-Verzeichnisses in Dezimal-Schreibweise (Basis 10).
-.br
-Beispiel: 'drwxrwx---' -> oktal 0770 -> dezimal 504
+.B \fCpass\fP
+\fIString\fP
+.sp
+Das Passwort des Datenbank\-Benutzers.
.TP
-\fBdelete\fP (\fIBoolean\fP)
-Bestimmt, ob beim Löschen einer Domain das Verzeichnis einer Domain, inklusive
-aller Anwender-Verzeichnisse, rekursiv gelöscht werden soll.
+.B \fCuser\fP
+\fIString\fP
+.sp
+Der Name des Datenbank\-Benutzers.
+.UNINDENT
+.sp
+Beispiel:
+.sp
+.nf
+.ft C
+[database]
+host = localhost
+user = vmm
+pass = PY_SRJ}L/0p\-oOk
+name = mailsys
+.ft P
+.fi
+.SS DOMAIN
+.sp
+Im \fBdomain\fP\-Abschnitt werden Domain\-spezifische Informationen konfiguriert.
+.INDENT 0.0
+.TP
+.B \fCauto_postmaster\fP
+\fIBoolean\fP
+.sp
+Ist der Wert dieser Option \fItrue\fP, wird \fBvmm\fP(1) beim Anlegen einer
+Domain automatisch einen postmaster\-Account erstellen.
.TP
-\fBBeispiel\fP:
-[domdir]
-.br
-base = /srv/mail
-.br
-mode = 504
-.br
-delete = false
-.\" -----
-.SH BIN ABSCHNITT
-Der \fBbin\fP-Abschnitt wird verwendet, um Pfade zu Binaries, die von \fBvmm\fP
-benötigt werden, anzugeben.
+.B \fCdelete_directory\fP
+\fIBoolean\fP
+.sp
+Bestimmt, ob beim Löschen einer Domain das Verzeichnis einer Domain,
+inklusive aller Anwender\-Verzeichnisse, rekursiv gelöscht werden soll.
+.TP
+.B \fCdirectory_mode\fP
+\fIInt\fP
+.sp
+Zugriffsbits des Domain\-Verzeichnisses in Dezimal\-Schreibweise (Basis
+10).
+.nf
+Beispiel: \(aqdrwxrwx\-\-\-\(aq \-> oktal 0770 \-> dezimal 504
+.fi
+.sp
.TP
-\fBdovecotpw\fP (\fIString\fP)
-Der absolute Pfad zum dovecotpw-Binary. Dieses wird verwendet, wenn als
-Passwort-Schema eines der folgenden verwendet wird: 'SMD5', 'SSHA', 'CRAM-MD5',
-\'HMAC-MD5', 'LANMAN', 'NTLM' oder 'RPA'.
-.TP
-\fBdu\fP (\fIString\fP)
-Der absolute Pfad zu \fBdu\fR(1). Dieses Binary wird verwendet, wenn die
-Festplattenbelegung eines Kontos ermittelt wird.
-.TP
-\fBpostconf\fP (\fIString\fP)
-Der absolute Pfad zu Postfix' \fBpostconf\fR(1).
-.br
-Dieses Binary wird verwendet, wenn \fBvmm\fR(1) diverse Postfix-Einstellungen
-prüft, zum Beispiel virtual_alias_expansion_limit.
+.B \fCforce_deletion\fP
+\fIBoolean\fP
+.sp
+Erzwingt das Löschen von Konten und Aliase beim Löschen einer Domain.
+.UNINDENT
+.sp
+Beispiel:
+.sp
+.nf
+.ft C
+[domain]
+auto_postmaster = true
+delete_directory = false
+directory_mode = 504
+force_deletion = false
+.ft P
+.fi
+.SS MAILDIR
+.sp
+Im \fBmaildir\fP\-Abschnitt werden die für die Maildirs erforderlichen Optionen
+festgelegt.
+.INDENT 0.0
.TP
-\fBBeispiel\fP:
-[bin]
-.br
-dovecotpw = /usr/sbin/dovecotpw
-.br
-du = /usr/bin/du
-.br
-postconf = /usr/sbin/postconf
-.\" -----
-.SH MISC ABSCHNITT
-Im \fBmisc\fP-Abschnitt werden verschiedene Einstellungen festgelegt.
+.B \fCfolders\fP
+\fIString\fP
+.sp
+Eine durch Doppelpunkten getrennte Liste mit Verzeichnisnamen, die
+innerhalb des Maildirs erstellt werden sollen. Sollen innerhalb des
+Maildirs keine Verzeichnisse angelegt werden, ist dieser Optionen ein
+einzelner Doppelpunkt (\(aq\fB:\fP\(aq) als Wert zuzuweisen.
+.sp
+Sollen Verzeichnisse mit Unterverzeichnissen angelegt werden, ist ein
+einzelner Punkt (\(aq\fB.\fP\(aq) als Separator zu verwenden.
.TP
-\fBpasswdscheme\fP (\fIString\fP)
-Das zu verwendende Passwort-Schema (siehe auch: dovecotpw -l)
+.B \fCname\fP
+\fIString\fP
+.sp
+Der Standard\-Name des Maildir\-Verzeichnisses im Verzeichnis des
+jeweiligen Anwenders.
+.UNINDENT
+.sp
+Beispiel:
+.sp
+.nf
+.ft C
+[maildir]
+folders = Drafts:Sent:Templates:Trash:Lists.Dovecot:Lists.Postfix
+name = Maildir
+.ft P
+.fi
+.SS MISC
+.sp
+Im \fBmisc\fP\-Abschnitt werden verschiedene Einstellungen festgelegt.
+.INDENT 0.0
.TP
-\fBgid_mail\fP (\fIInt\fP)
-Die numerische Gruppen-ID der Gruppe mail, bzw. der Gruppe aus
-mail_privileged_group der Datei dovecot.conf.
+.B \fCbase_directory\fP
+\fIString\fP
+.sp
+Alle Domain\-Verzeichnisse werden innerhalb dieses Basis\-Verzeichnisses
+angelegt.
.TP
-\fBforcedel\fP (\fIBoolean\fP)
-Legt fest, ob beim Löschen einer Domain alle vorhanden Konten und/oder Aliase,
-ohne Nachfrage, gelöscht werden sollen.
+.B \fCpassword_scheme\fP
+\fIString\fP
+.sp
+Das zu verwendende Passwort\-Schema (siehe auch: \fBdovecotpw \-l\fP).
+.TP
+.B \fCgid_mail\fP
+\fIInt\fP
+.sp
+Die numerische Gruppen\-ID der Gruppe mail, bzw. der Gruppe aus
+\fImail_privileged_group\fP der Datei \fIdovecot.conf\fP.
.TP
-\fBtransport\fP (\fIString\fP)
-Der Standard-Transport aller Domains und Konten.
+.B \fCtransport\fP
+\fIString\fP
+.sp
+Der Standard\-Transport aller Domains und Konten. Siehe auch:
+\fBtransport\fP(5)
.TP
-\fBdovecotvers\fP (\fIInt\fP)
-Die verketteten Major- und Minor-Teile der eingesetzten Dovecot-Version
-(siehe: dovecot --version).
-.br
-Diese Option beeinflusst diverse Datenbankzugriffe. Da es zwischen Dovecot
-v1.1.x und v1.2.x einige Änderungen gab. Zum Beispiel \fB11\fP, falls
-\fBdovecot --version\fP den Wert \fB1.1\fP.18 ausgibt.
-.TP
-\fBBeispiel\fP:
+.B \fCdovecot_version\fP
+\fIInt\fP
+.sp
+Die verketteten Major\- und Minor\-Teile der eingesetzten Dovecot\-Version
+(siehe: \fBdovecot \-\-version\fP).
+.sp
+Wenn das Kommando \fBdovecot \-\-version\fP zum Beispiel \fI1.1.18\fP ausgibt,
+ist dieser Option der Wert \fB11\fP zuzuweisen.
+.UNINDENT
+.sp
+Beispiel:
+.sp
+.nf
+.ft C
[misc]
-.br
-passwdscheme = CRAM-MD5
-.br
+base_directory = /srv/mail
+password_scheme = CRAM\-MD5
gid_mail = 8
-.br
-forcedel = false
-.br
transport = dovecot:
-.br
-dovecotvers = 11
-.\" -----
-.SH CONFIG ABSCHNITT
-Beim \fBconfig\fP-Abschnitt handelt es sich um einen internen
-Steuerungs-Abschnitt.
+dovecot_version = 11
+.ft P
+.fi
+.SH DATEIEN
+.INDENT 0.0
+.TP
+.B \fI/root/vmm.cfg\fP
+.nf
+Wird verwendet, falls vorhanden.
+.fi
+.sp
.TP
-\fBdone\fP (\fIBoolean\fP)
-Diese Option hat den den Wert \fIfalse\fP, wenn vmm zum ersten Mal installiert
-wurde. Wenn die Datei \fIvmm.cfg\fP von Hand editiert wird, weisen Sie dieser
-Option abschließend den Wert \fItrue\fP zu.
-.br
-Wird die Konfiguration über das Kommando \fBvmm configure\fP angepasst, wird der
-Wert dieser Option automatisch auf \fItrue\fP gesetzt.
-.br
-Sollte diese Option den Wert \fIfalse\fP zugewiesen haben, so startet \fBvmm\fP
-beim nächsten Aufruf im interaktiven Konfigurations-Modus.
+.B \fI/usr/local/etc/vmm.cfg\fP
+.nf
+Wird verwendet, sollte obige Datei nicht gefunden werden.
+.fi
+.sp
.TP
-\fBBeispiel\fP:
-[config]
-.br
-done = true
-.\" -----
-.SH DATEIEN
-vmm.cfg
+.B \fI/etc/vmm.cfg\fP
+.nf
+Wird verwendet, falls obengenannte Dateien nicht existieren.
+.fi
+.sp
+.UNINDENT
.SH SIEHE AUCH
-vmm(1), Programm für die Kommandozeile, um E-Mail-Domains, -Konten und -Aliase
+.sp
+vmm(1), Programm für die Kommandozeile, um E\-Mail\-Domains, \-Konten und \-Aliase
zu verwalten.
-.SH AUTOR
-\fBvmm\fP und die dazugehörigen Manualseiten wurden von Pascal Volk
-<\fIneverseen@users.sourceforge.net\fP> geschrieben und sind unter den
-Bedingungen der BSD Lizenz lizenziert.
+.SH COPYING
+.sp
+vmm und die dazugehörigen Manualseiten wurden von Pascal Volk geschrieben
+und sind unter den Bedingungen der BSD Lizenz lizenziert.
+.SH AUTHOR
+Pascal Volk <neverseen@users.sourceforge.net>
+.\" Generated by docutils manpage writer.
+.\"
+.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/de/man5/vmm.cfg.5.rst Fri Jan 22 04:31:38 2010 +0000
@@ -0,0 +1,320 @@
+=========
+ vmm.cfg
+=========
+
+---------------------------
+Konfigurationsdatei für vmm
+---------------------------
+
+:Author: Pascal Volk <neverseen@users.sourceforge.net>
+:Date: 2010-01-18
+: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 Abschnitte unterteilt. Jeder Abschnitt
+wird mit dem, in eckigen Klammern '**[**' und '**]**' eingefassten, Namen des
+Abschnitts eingeleitet, gefolgt von '*Option* = *Wert*' Einträgen::
+
+ [database]
+ host = 127.0.0.1
+
+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**'
+
+
+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.
+
+ABSCHNITTE
+==========
+Im Folgenden werden die Abschnitte der *vmm.cfg* und deren Optionen
+beschrieben.
+
+ACCOUNT
+-------
+Die Optionen des Abschnitts **account** legen Konto-spezifische
+Einstellungen fest.
+
+``delete_directory`` : *Boolean*
+ Bestimmt das Verhalten von **vmm**\(1) beim Löschen eines Kontos.
+ Wenn der Wert dieser Option *true* ist, wird das Home-Verzeichnis des
+ zu löschenden Anwenders rekursiv gelöscht.
+
+``directory_mode`` : *Int*
+ Zugriffsbits des Home-Verzeichnisses, sowie aller enthaltenen
+ Verzeichnisse, in Dezimal-Schreibweise (Basis 10).
+
+ | Beispiel: 'drwx------' -> oktal 0700 -> dezimal 448
+
+``disk_usage`` : *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.
+
+``imap`` : *Boolean*
+ Bestimmt, ob sich neu angelegte Benutzer per IMAP anmelden können sollen.
+
+``password_length`` : *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.
+
+``pop3``
+ Bestimmt, ob sich neu angelegte Benutzer per POP3 anmelden können sollen.
+
+``random_password`` : *Boolean*
+ Mit dieser Option wird bestimmt , ob **vmm**\(1) ein zufälliges Passwort
+ generieren soll, wenn kein Passwort an den **useradd** Unterbefehl
+ ü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 **password_length** konfigurieren.
+
+``sieve`` : *Boolean*
+ Bestimmt, ob sich neu angelegte Benutzer per ManageSieve anmelden
+ können sollen.
+
+``smtp`` : *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
+---
+Im **bin**-Abschnitt werden Pfade zu Binaries angegeben, die von
+**vmm**\(1) benötigt werden.
+
+``dovecotpw`` : *String*
+ Der absolute Pfad zum dovecotpw Binary. Dieses Binary wird zur
+ Hash-Erzeugung verwendet, wenn **misc.password_scheme** einen der
+ nachfolgenden Werte hat: 'SMD5', 'SSHA', 'CRAM-MD5', 'HMAC-MD5',
+ 'LANMAN', 'NTLM' oder 'RPA'.
+
+``du`` : *String*
+ Der absolute Pfad zu **du**\(1). Dieses Binary wird verwendet, wenn
+ die Festplattenbelegung eines Kontos ermittelt wird.
+
+``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
+
+CONFIG
+------
+Beim **config**-Abschnitt handelt es sich um einen internen
+Steuerungs-Abschnitt.
+
+``done`` : *Boolean*
+ Diese Option hat den Wert *false*, wenn **vmm**\(1) zum ersten Mal
+ installiert wurde. Wenn Sie die Datei *vmm.cfg* von Hand editieren,
+ weisen Sie dieser Option abschließend den Wert *true* zu. Wird die
+ Konfiguration über das Kommando **vmm configure** angepasst, wird der
+ Wert dieser Option automatisch auf *true* gesetzt.
+
+ Ist der Wert dieser Option *false*, so startet **vmm**\(1) beim
+ nächsten Aufruf im interaktiven Konfigurations-Modus.
+
+Beispiel::
+
+ [config]
+ done = true
+
+DATABASE
+--------
+Der **database**-Abschnitt wird verwendet, um die für den Datenbankzugriff
+benötigten Optionen festzulegen.
+
+``host`` : *String*
+ Der Hostname oder die IP-Adresse des Datenbank-Servers.
+
+``name`` : *String*
+ Der Name der zu verwendenden Datenbank.
+
+``pass`` : *String*
+ Das Passwort des Datenbank-Benutzers.
+
+``user`` : *String*
+ Der Name des Datenbank-Benutzers.
+
+Beispiel::
+
+ [database]
+ host = localhost
+ user = vmm
+ pass = PY_SRJ}L/0p-oOk
+ name = mailsys
+
+DOMAIN
+------
+Im **domain**-Abschnitt werden Domain-spezifische Informationen konfiguriert.
+
+``auto_postmaster`` : *Boolean*
+ Ist der Wert dieser Option *true*, wird **vmm**\(1) beim Anlegen einer
+ Domain automatisch einen postmaster-Account erstellen.
+
+``delete_directory`` : *Boolean*
+ Bestimmt, ob beim Löschen einer Domain das Verzeichnis einer Domain,
+ inklusive aller Anwender-Verzeichnisse, rekursiv gelöscht werden soll.
+
+``directory_mode`` : *Int*
+ Zugriffsbits des Domain-Verzeichnisses in Dezimal-Schreibweise (Basis
+ 10).
+
+ | Beispiel: 'drwxrwx---' -> oktal 0770 -> dezimal 504
+
+``force_deletion`` : *Boolean*
+ Erzwingt das Löschen aller zugeordneten Konten und Aliase beim Löschen
+ einer Domain.
+
+Beispiel::
+
+ [domain]
+ auto_postmaster = true
+ delete_directory = false
+ directory_mode = 504
+ force_deletion = false
+
+MAILDIR
+-------
+Im **maildir**-Abschnitt werden die für die Maildirs erforderlichen Optionen
+festgelegt.
+
+``folders`` : *String*
+ Eine durch Doppelpunkten getrennte Liste mit Verzeichnisnamen, die
+ innerhalb des Maildirs erstellt werden sollen. Sollen innerhalb des
+ Maildirs keine Verzeichnisse 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.
+
+``name`` : *String*
+ Der Standard-Name des Maildir-Verzeichnisses im Verzeichnis des
+ jeweiligen Anwenders.
+
+Beispiel::
+
+ [maildir]
+ folders = Drafts:Sent:Templates:Trash:Lists.Dovecot:Lists.Postfix
+ name = Maildir
+
+MISC
+----
+Im **misc**-Abschnitt werden verschiedene Einstellungen festgelegt.
+
+``base_directory`` : *String*
+ Alle Domain-Verzeichnisse werden innerhalb dieses Basis-Verzeichnisses
+ angelegt.
+
+``password_scheme`` : *String*
+ Das zu verwendende Passwort-Schema (siehe auch: **dovecotpw -l**).
+
+``gid_mail`` : *Int*
+ Die numerische Gruppen-ID der Gruppe mail, bzw. der Gruppe aus
+ `mail_privileged_group` der Datei *dovecot.conf*.
+
+``transport`` : *String*
+ Der Standard-Transport aller Domains und Konten. Siehe auch:
+ **transport**\(5)
+
+``dovecot_version`` : *Int*
+ Die verketteten Major- und Minor-Teile der eingesetzten Dovecot-Version
+ (siehe: **dovecot --version**).
+
+ Wenn das Kommando **dovecot --version** zum Beispiel *1.1.18* ausgibt,
+ ist dieser Option der Wert **11** zuzuweisen.
+
+Beispiel::
+
+ [misc]
+ base_directory = /srv/mail
+ password_scheme = CRAM-MD5
+ gid_mail = 8
+ transport = dovecot:
+ dovecot_version = 11
+
+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), Programm für die Kommandozeile, um E-Mail-Domains, -Konten und -Aliase
+zu verwalten.
+
+COPYING
+=======
+vmm und die dazugehörigen Manualseiten wurden von Pascal Volk geschrieben
+und sind unter den Bedingungen der BSD Lizenz lizenziert.
+
--- a/man/man5/vmm.cfg.5 Fri Jan 22 04:22:59 2010 +0000
+++ b/man/man5/vmm.cfg.5 Fri Jan 22 04:31:38 2010 +0000
@@ -1,256 +1,444 @@
-.TH vmm.cfg 5 "17 Aug 2009" "Pascal Volk"
+.\" Man page generated from reStructeredText.
+.
+.TH VMM.CFG 5 "2010-01-18" "vmm-0.6.0" "vmm Manual"
.SH NAME
vmm.cfg \- configuration file for vmm
+.
+.nr rst2man-indent-level 0
+.
+.de1 rstReportMargin
+\\$1 \\n[an-margin]
+level \\n[rst2man-indent-level]
+level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
+-
+\\n[rst2man-indent0]
+\\n[rst2man-indent1]
+\\n[rst2man-indent2]
+..
+.de1 INDENT
+.\" .rstReportMargin pre:
+. RS \\$1
+. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
+. nr rst2man-indent-level +1
+.\" .rstReportMargin post:
+..
+.de UNINDENT
+. RE
+.\" indent \\n[an-margin]
+.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.nr rst2man-indent-level -1
+.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
+.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
+..
.SH SYNOPSIS
+.sp
vmm.cfg
.SH DESCRIPTION
-\fBvmm\fR(1) reads configuration data from \fIvmm.cfg\fP.
-.br
-The configuration file is split in multiple sections. A section starts with the
-section name, enclosed in square brackets '[' and ']' (e.g. \fB[database]\fP),
-followed by \'option=value' pairs (e.g. \fBhost = 127.0.0.1\fP).
-.br
-Whitespace around the '=' and at the end of a value is ignored.
-.PP
-Empty lines and lines starting with '#' or ';' will be ignored.
-.PP
+.sp
+\fBvmm\fP(1) reads its configuration data from \fIvmm.cfg\fP.
+.sp
+The configuration file is split into multiple sections. A section starts with
+the section name, enclosed in square brackets \(aq\fB[\fP\(aq and \(aq\fB]\fP\(aq, followed
+by \(aq\fIoption\fP = \fIvalue\fP\(aq pairs:
+.sp
+.nf
+.ft C
+[database]
+host = 127.0.0.1
+.ft P
+.fi
+.sp
+Whitespace around the \(aq=\(aq and at the end of a value is ignored.
+.sp
+Empty lines and lines starting with \(aq#\(aq or \(aq;\(aq will be ignored.
+.sp
Each value uses one of the following data types:
-.IP \(bu
-.I Boolean
-to indicate if something is enabled/activated (true) or disabled/deactivated
-(false).
-.br
-Accepted values for \fBtrue\fP are: \fB1\fP, \fByes\fP, \fBtrue\fP and \fBon\fP.
-.br
-Accepted values for \fBfalse\fP are: \fB0\fP, \fBno\fP, \fBfalse\fP and
-\fBoff\fP.
-.IP \(bu
-.I Int
-an integer number, written without a fractional or decimal component. For
-example \fB1\fP, \fB50\fP or \fB321\fP are integers.
-.IP \(bu
-.I String
-a sequence of characters and numbers. For example '\fBword\fP', '\fBhello
-world\fP' or '\fB/usr/bin/strings\fP'
+.INDENT 0.0
+.IP \(bu 2
+.
+\fIBoolean\fP to indicate if something is enabled/activated (true) or
+disabled/deactivated (false).
+.nf
+Accepted values for \fItrue\fP are: \fB1\fP, \fByes\fP, \fBtrue\fP and \fBon\fP.
+Accepted values for \fIfalse\fP are: \fB0\fP, \fBno\fP, \fBfalse\fP and \fBoff\fP.
+.fi
+.sp
+.IP \(bu 2
+.
+\fIInt\fP an integer number, written without a fractional or decimal component.
+.nf
+For example \fB1\fP, \fB50\fP or \fB321\fP are integers.
+.fi
+.sp
+.IP \(bu 2
+.
+\fIString\fP a sequence of characters and numbers.
+.nf
+For example \(aq\fBword\fP\(aq, \(aq\fBhello world\fP\(aq or \(aq\fB/usr/bin/strings\fP\(aq
+.fi
+.sp
+.UNINDENT
.SS SEARCH ORDER
-By default vmm looks for \fIvmm.cfg\fP in the following directories in the
+.sp
+By default \fBvmm\fP(1) looks for \fIvmm.cfg\fP in the following directories in the
order listed:
-.RS
-.PD 0
+.INDENT 0.0
+.INDENT 3.5
+.nf
+\fI/root\fP
+\fI/usr/local/etc\fP
+\fI/etc\fP
+.fi
+.sp
+.UNINDENT
+.UNINDENT
+.sp
+The first configuration file found will be used.
+.SH SECTIONS
+.sp
+This section describes all sections and their options of the \fIvmm.cfg\fP.
+.SS ACCOUNT
+.sp
+The options in the section \fBaccount\fP are used to specify user account
+related settings.
+.INDENT 0.0
+.TP
+.B \fCdelete_directory\fP
+\fIBoolean\fP
+.sp
+Determines the behavior of \fBvmm\fP(1) when an account is deleted. If
+this option is set to \fItrue\fP the user\(aqs home directory will be deleted
+recursively.
+.TP
+.B \fCdirectory_mode\fP
+\fIInt\fP
+.sp
+Access mode for a user\(aqs home directory and all directories inside.
+The value has to be specified in decimal (base 10) notation.
+.nf
+For example: \(aqdrwx\-\-\-\-\-\-\(aq \-> octal 0700 \-> decimal 448
+.fi
+.sp
.TP
-.I
-/root
+.B \fCdisk_usage\fP
+\fIBoolean\fP
+.sp
+Determines whether the disk usage of a user\(aqs Maildir always should be
+summarized, using \fBdu\fP(1), and displayed with account information.
+.sp
+This could be slow on large Maildirs. When you have enabled quotas,
+\fBvmm\fP\(aqs \fBuserinfo\fP subcomammand will also display the current quota
+usage of the account. You may also use \fBuserinfo\fP\(aqs optional argument
+\fBdu\fP or \fBfull\fP, in order to display the current disk usage of an
+account.
+.TP
+.B \fCimap\fP
+\fIBoolean\fP
+.sp
+Determines whether a newly created user can log in via IMAP.
+.TP
+.B \fCpassword_length\fP
+\fIInt\fP
+.sp
+Determines how many characters and/or numbers should be used for random
+generated passwords. Any value less than 8 will be increased to 8.
+.TP
+.B \fCpop3\fP
+\fIBoolean\fP
+.sp
+Determines whether a newly created user can log in via POP3.
+.TP
+.B \fCrandom_password\fP
+\fIBoolean\fP
+.sp
+Determines whether \fBvmm\fP should generate a random password when no
+password was given for the \fBuseradd\fP subcommand. If this option is
+set to \fIfalse\fP \fBvmm\fP will prompt you to enter a password for the new
+account.
+.sp
+You can specify the password length of generated passwords with the
+\fBpassword_length\fP option.
+.TP
+.B \fCsieve\fP
+\fIBoolean\fP
+.sp
+Determines whether a newly created user can log in via ManageSieve.
.TP
-.I
-/usr/local/etc
+.B \fCsmtp\fP
+\fIBoolean\fP
+.sp
+Determines whether a newly created user can log in via SMTP (SMTP AUTH).
+.UNINDENT
+.sp
+Example:
+.sp
+.nf
+.ft C
+[account]
+delete_directory = false
+directory_mode = 448
+disk_usage = false
+random_password = true
+password_length = 10
+smtp = true
+pop3 = true
+imap = true
+sieve = true
+.ft P
+.fi
+.SS BIN
+.sp
+The \fBbin\fP section is used to specify some paths to some binaries required
+by \fBvmm\fP(1).
+.INDENT 0.0
+.TP
+.B \fCdovecotpw\fP
+\fIString\fP
+.sp
+The absolute path to the dovecotpw binary. This binary is used to
+generate a password hash, if \fBmisc.password_scheme\fP is set to one of
+\(aqSMD5\(aq, \(aqSSHA\(aq, \(aqCRAM\-MD5\(aq, \(aqHMAC\-MD5\(aq, \(aqLANMAN\(aq, \(aqNTLM\(aq or \(aqRPA\(aq.
+.TP
+.B \fCdu\fP
+\fIString\fP
+.sp
+The absolute path to \fBdu\fP(1). This binary is used to summarize the
+disk usage of a user\(aqs Maildir.
.TP
-.I
-/etc
-.PD
-.RE
-.PP
-The first match it finds will be used.
-.\" -----
-.SH DATABASE SECTION
+.B \fCpostconf\fP
+\fIString\fP
+.sp
+The absolute path to Postfix\(aq \fBpostconf\fP(1). This binary is required
+when \fBvmm\fP(1) has to check for some Postfix settings, e.g.
+\fIvirtual_alias_expansion_limit\fP.
+.UNINDENT
+.sp
+Example:
+.sp
+.nf
+.ft C
+[bin]
+dovecotpw = /usr/sbin/dovecotpw
+du = /usr/bin/du
+postconf = /usr/sbin/postconf
+.ft P
+.fi
+.SS CONFIG
+.sp
+The \fBconfig\fP section is an internal used control section.
+.INDENT 0.0
+.TP
+.B \fCdone\fP
+\fIBoolean\fP
+.sp
+This option is set to \fIfalse\fP when \fBvmm\fP(1) is installed for the first
+time. When you edit \fIvmm.cfg\fP, set this option to \fItrue\fP. This option is
+also set to \fItrue\fP when you configure \fBvmm\fP(1) with the command \fBvmm
+configure\fP.
+.sp
+If this option is set to \fIfalse\fP, \fBvmm\fP(1) will start in the
+interactive configurations mode.
+.UNINDENT
+.sp
+Example:
+.sp
+.nf
+.ft C
+[config]
+done = true
+.ft P
+.fi
+.SS DATABASE
+.sp
The \fBdatabase\fP section is used to specify some options required to
connect to the database.
+.INDENT 0.0
.TP
-\fBhost\fP (\fIString\fP)
+.B \fChost\fP
+\fIString\fP
+.sp
Hostname or IP address of the database server.
.TP
-\fBuser\fP (\fIString\fP)
-Name of the database user.
-.TP
-\fBpass\fP (\fIString\fP)
-Database password
-.TP
-\fBname\fP (\fIString\fP)
+.B \fCname\fP
+\fIString\fP
+.sp
Name of the database.
.TP
-\fBExample\fP:
+.B \fCpass\fP
+\fIString\fP
+.sp
+Database password.
+.TP
+.B \fCuser\fP
+\fIString\fP
+.sp
+Name of the database user.
+.UNINDENT
+.sp
+Example:
+.sp
+.nf
+.ft C
[database]
-.br
host = localhost
-.br
user = vmm
-.br
-pass = T~_:L4OYyl]TU?)
-.br
+pass = PY_SRJ}L/0p\-oOk
name = mailsys
-.\" -----
-.SH MAILDIR SECTION
-The \fBmaildir\fP section is used to specify some options for the Maildirs.
+.ft P
+.fi
+.SS DOMAIN
+.sp
+The \fBdomain\fP section specifies some domain related settings.
+.INDENT 0.0
.TP
-\fBname\fP (\fIString\fP)
-Default name of the maildir folder in users home directory.
+.B \fCauto_postmaster\fP
+\fIBoolean\fP
+.sp
+Determines if \fBvmm\fP(1) should create also a postmaster account when a
+new domain is created.
+.TP
+.B \fCdelete_directory\fP
+\fIBoolean\fP
+.sp
+Specifies whether the domain directory and all user directories inside
+should be deleted when a domain is deleted.
.TP
-\fBfolders\fP (\fIString\fP)
-A colon separated list of folder names, that should be created.
-.br
-If no folders should be created inside the Maildir, set the value of this option
-to a single colon (':').
-.TP
-\fBmode\fP (\fIInt\fP)
-Access mode for the maildir in decimal (base 10) notation. For example:
-\'drwx------' -> octal 0700 -> decimal 448
+.B \fCdirectory_mode\fP
+\fIInt\fP
+.sp
+Access mode for the domain directory in decimal (base 10) notation.
+.nf
+For example: \(aqdrwxrwx\-\-\-\(aq \-> octal 0770 \-> decimal 504
+.fi
+.sp
.TP
-\fBdiskusage\fP (\fIBoolean\fP)
-Decides if the disk usage of users maildir always should be summarized and
-displayed with account information.
+.B \fCforce_deletion\fP
+\fIBoolean\fP
+.sp
+Force deletion of accounts and aliases when a domain is deleted.
+.UNINDENT
+.sp
+Example:
+.sp
+.nf
+.ft C
+[domain]
+auto_postmaster = true
+delete_directory = false
+directory_mode = 504
+force_deletion = false
+.ft P
+.fi
+.SS MAILDIR
+.sp
+The \fBmaildir\fP section is used to specify some default options for new
+created Maildirs and folders inside.
+.INDENT 0.0
.TP
-\fBdelete\fP (\fIBoolean\fP)
-Decides if the maildir should be deleted recursive when the account is deleted.
+.B \fCfolders\fP
+\fIString\fP
+.sp
+A colon separated list of folder names, that should be created. If no
+folders should be created inside the Maildir, set the value of this
+option to a single colon (\(aq\fB:\fP\(aq).
+.sp
+If you want to create folders containing one or more subfolders, separate
+them with a single dot (\(aq\fB.\fP\(aq).
.TP
-\fBExample\fP:
+.B \fCname\fP
+\fIString\fP
+.sp
+Default name of the Maildir folder in users home directories.
+.UNINDENT
+.sp
+Example:
+.sp
+.nf
+.ft C
[maildir]
-.br
+folders = Drafts:Sent:Templates:Trash:Lists.Dovecot:Lists.Postfix
name = Maildir
-.br
-folders = Drafts:Sent:Templates:Trash:INBOX.News
-.br
-mode = 448
-.br
-diskusage = false
-.br
-delete = false
-.\" -----
-.SH SERVICES SECTION
-The \fBservices\fP section is used to specify the default restrictions for
-all accounts.
-.TP
-\fBsmtp\fP (\fIBoolean\fP)
-Decides if users can login via smtp by default.
-.TP
-\fBpop3\fP (\fIBoolean\fP)
-Decides if users can login via pop3 by default.
+.ft P
+.fi
+.SS MISC
+.sp
+The \fBmisc\fP section is used to define miscellaneous settings.
+.INDENT 0.0
.TP
-\fBimap\fP (\fIBoolean\fP)
-Decides if users can login via imap by default.
-.TP
-\fBsieve\fP (\fIBoolean\fP)
-Decides if users can login via managesieve by default.
-.TP
-\fBExample\fP:
-[services]
-.br
-smtp = true
-.br
-pop3 = true
-.br
-imap = false
-.br
-sieve = false
-.\" -----
-.SH DOMDIR SECTION
-The \fBdomdir\fP section is used to specify options for the directories of the
-domains.
-.TP
-\fBbase\fP (\fIString\fP)
+.B \fCbase_directory\fP
+\fIString\fP
+.sp
All domain directories will be created inside this directory.
.TP
-\fBmode\fP (\fIInt\fP)
-Access mode for the domain directory in decimal (base 10) notation. For
-example: 'drwxrwx---' -> octal 0770 -> decimal 504
-.TP
-\fBdelete\fP (\fIBoolean\fP)
-Decides if the domain directory and all user directories inside should be
-deleted when a domain is deleted.
-.TP
-\fBExample\fP:
-[domdir]
-.br
-base = /srv/mail
-.br
-mode = 504
-.br
-delete = false
-.\" -----
-.SH BIN SECTION
-The \fBbin\fP section is used to specify some paths to some binaries required
-by \fBvmm\fP.
+.B \fCpassword_scheme\fP
+\fIString\fP
+.sp
+Password scheme to use (see also: \fBdovecotpw \-l\fP).
.TP
-\fBdovecotpw\fP (\fIString\fP)
-The absolute path to the dovecotpw binary. This binary is used to generate a
-password hash, if the \fIpasswdscheme\fP is one of 'SMD5', 'SSHA', 'CRAM-MD5',
-\'HMAC-MD5', 'LANMAN', 'NTLM' or 'RPA'.
-.TP
-\fBdu\fP (\fIString\fP)
-The absolute path to \fBdu\fR(1). This binary is used to summarize the disk
-usage of a maildir.
-.TP
-\fBpostconf\fP (\fIString\fP)
-The absolute path to Postfix' \fBpostconf\fR(1).
-.br
-This binary is required if \fBvmm\fR(1) has to check for some Postfix settings,
-e.g. virtual_alias_expansion_limit.
+.B \fCgid_mail\fP
+\fIInt\fP
+.sp
+Numeric group ID of group mail (\fImail_privileged_group\fP from
+\fIdovecot.conf\fP)
.TP
-\fBExample\fP:
-[bin]
-.br
-dovecotpw = /usr/sbin/dovecotpw
-.br
-du = /usr/bin/du
-.br
-postconf = /usr/sbin/postconf
-.\" -----
-.SH MISC SECTION
-The \fBmisc\fP section is used to define miscellaneous settings.
-.TP
-\fBpasswdscheme\fP (\fIString\fP)
-Password scheme to use (see also: dovecotpw -l)
+.B \fCtransport\fP
+\fIString\fP
+.sp
+Default transport for domains and accounts. For details see
+\fBtransport\fP(5).
.TP
-\fBgid_mail\fP (\fIInt\fP)
-Numeric group ID of group mail (mail_privileged_group from dovecot.conf)
-.TP
-\fBforcedel\fP (\fIBoolean\fP)
-Force deletion of accounts and aliases when a domain is deleted.
-.TP
-\fBtransport\fP (\fIString\fP)
-Default transport for domains and accounts.
-.TP
-\fBdovecotvers\fP (\fIInt\fP)
-The concatenated major and minor version number of the currently used Dovecot
-version. (see: dovecot --version).
-.br
-This option affects various database operations. There are some differences
-between Dovecot v1.1.x and v1.2.x. For example, when the command \fBdovecot
---version\fP shows \fB1.1\fP.18, set the value of this option to \fB11\fP.
-.TP
-\fBExample\fP:
+.B \fCdovecot_version\fP
+\fIInt\fP
+.sp
+The concatenated major and minor version number of the currently used
+Dovecot version. (see: \fBdovecot \-\-version\fP).
+.sp
+When, for example, the command \fBdovecot \-\-version\fP prints \fI1.1.18\fP, set
+the value of this option to \fB11\fP.
+.UNINDENT
+.sp
+Example:
+.sp
+.nf
+.ft C
[misc]
-.br
-passwdscheme = CRAM-MD5
-.br
+base_directory = /srv/mail
+password_scheme = CRAM\-MD5
gid_mail = 8
-.br
-forcedel = false
-.br
transport = dovecot:
-.br
-dovecotvers = 11
-.\" -----
-.SH CONFIG SECTION
-The \fBconfig\fP section is a internal used control section.
+dovecot_version = 11
+.ft P
+.fi
+.SH FILES
+.INDENT 0.0
+.TP
+.B \fI/root/vmm.cfg\fP
+.nf
+will be used when found.
+.fi
+.sp
+.TP
+.B \fI/usr/local/etc/vmm.cfg\fP
+.nf
+will be used when the above file doesn\(aqt exist.
+.fi
+.sp
.TP
-\fBdone\fP (\fIBoolean\fP)
-This option is set to \fIfalse\fP when \fBvmm\fP is installed for the first
-time. When you edit \fIvmm.cfg\fP, set this option to \fItrue\fP. This option is
-also set to \fItrue\fP when you configure vmm with the command \fBvmm
-configure\fP.
-.br
-If this option is set to \fIfalse\fP, \fBvmm\fP will start in the interactive
-configurations mode.
-.TP
-\fBExample\fP:
-[config]
-.br
-done = true
-.\" -----
-.SH FILES
-vmm.cfg
+.B \fI/etc/vmm.cfg\fP
+.nf
+will be used when none of the both above mentioned files exists.
+.fi
+.sp
+.UNINDENT
.SH SEE ALSO
+.sp
vmm(1), command line tool to manage email domains/accounts/aliases
+.SH COPYING
+.sp
+vmm and its manual pages were written by Pascal Volk and are licensed under
+the terms of the BSD License.
.SH AUTHOR
-\fBvmm\fP and its man pages were written by Pascal Volk
-<\fIneverseen@users.sourceforge.net\fP> and are licensed under the terms of the
-BSD License.
+Pascal Volk <neverseen@users.sourceforge.net>
+.\" Generated by docutils manpage writer.
+.\"
+.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/man/man5/vmm.cfg.5.rst Fri Jan 22 04:31:38 2010 +0000
@@ -0,0 +1,303 @@
+=========
+ vmm.cfg
+=========
+
+--------------------------
+configuration file for vmm
+--------------------------
+
+:Author: Pascal Volk <neverseen@users.sourceforge.net>
+:Date: 2010-01-18
+:Version: vmm-0.6.0
+:Manual group: vmm Manual
+:Manual section: 5
+
+.. contents::
+ :backlinks: top
+ :class: htmlout
+
+SYNOPSIS
+========
+vmm.cfg
+
+DESCRIPTION
+===========
+**vmm**\(1) reads its configuration data from *vmm.cfg*.
+
+The configuration file is split into multiple sections. A section starts with
+the section name, enclosed in square brackets '**[**' and '**]**', followed
+by '*option* = *value*' pairs::
+
+ [database]
+ host = 127.0.0.1
+
+Whitespace around the '=' and at the end of a value is ignored.
+
+Empty lines and lines starting with '#' or ';' will be ignored.
+
+Each value uses one of the following data types:
+
+* *Boolean* to indicate if something is enabled/activated (true) or
+ disabled/deactivated (false).
+
+ | Accepted values for *true* are: **1**, **yes**, **true** and **on**.
+ | Accepted values for *false* are: **0**, **no**, **false** and **off**.
+
+* *Int* an integer number, written without a fractional or decimal component.
+
+ | For example **1**, **50** or **321** are integers.
+
+* *String* a sequence of characters and numbers.
+
+ | For example '**word**', '**hello world**' or '**/usr/bin/strings**'
+
+SEARCH ORDER
+-------------
+By default **vmm**\(1) looks for *vmm.cfg* in the following directories in the
+order listed:
+
+ | */root*
+ | */usr/local/etc*
+ | */etc*
+
+The first configuration file found will be used.
+
+SECTIONS
+========
+This section describes all sections and their options of the *vmm.cfg*.
+
+ACCOUNT
+-------
+The options in the section **account** are used to specify user account
+related settings.
+
+``delete_directory`` : *Boolean*
+ Determines the behavior of **vmm**\(1) when an account is deleted. If
+ this option is set to *true* the user's home directory will be deleted
+ recursively.
+
+``directory_mode`` : *Int*
+ Access mode for a user's home directory and all directories inside.
+ The value has to be specified in decimal (base 10) notation.
+
+ | For example: 'drwx------' -> octal 0700 -> decimal 448
+
+``disk_usage`` : *Boolean*
+ Determines whether the disk usage of a user's Maildir always should be
+ summarized, using **du**\(1), and displayed with account information.
+
+ This could be slow on large Maildirs. When you have enabled quotas,
+ **vmm**'s **userinfo** subcomammand will also display the current quota
+ usage of the account. You may also use **userinfo**'s optional argument
+ **du** or **full**, in order to display the current disk usage of an
+ account.
+
+``imap`` : *Boolean*
+ Determines whether a newly created user can log in via IMAP.
+
+``password_length`` : *Int*
+ Determines how many characters and/or numbers should be used for random
+ generated passwords. Any value less than 8 will be increased to 8.
+
+``pop3`` : *Boolean*
+ Determines whether a newly created user can log in via POP3.
+
+``random_password`` : *Boolean*
+ Determines whether **vmm** should generate a random password when no
+ password was given for the **useradd** subcommand. If this option is
+ set to *false* **vmm** will prompt you to enter a password for the new
+ account.
+
+ You can specify the password length of generated passwords with the
+ **password_length** option.
+
+``sieve`` : *Boolean*
+ Determines whether a newly created user can log in via ManageSieve.
+
+``smtp`` : *Boolean*
+ Determines whether a newly created user can log in via SMTP (SMTP AUTH).
+
+Example::
+
+ [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
+---
+The **bin** section is used to specify some paths to some binaries required
+by **vmm**\(1).
+
+``dovecotpw`` : *String*
+ The absolute path to the dovecotpw binary. This binary is used to
+ generate a password hash, if **misc.password_scheme** is set to one of
+ 'SMD5', 'SSHA', 'CRAM-MD5', 'HMAC-MD5', 'LANMAN', 'NTLM' or 'RPA'.
+
+``du`` : *String*
+ The absolute path to **du**\(1). This binary is used to summarize the
+ disk usage of a user's Maildir.
+
+``postconf`` : *String*
+ The absolute path to Postfix' **postconf**\(1). This binary is required
+ when **vmm**\(1) has to check for some Postfix settings, e.g.
+ `virtual_alias_expansion_limit`.
+
+Example::
+
+ [bin]
+ dovecotpw = /usr/sbin/dovecotpw
+ du = /usr/bin/du
+ postconf = /usr/sbin/postconf
+
+CONFIG
+------
+The **config** section is an internal used control section.
+
+``done`` : *Boolean*
+ This option is set to *false* when **vmm**\(1) is installed for the first
+ time. When you edit *vmm.cfg*, set this option to *true*. This option is
+ also set to *true* when you configure **vmm**\(1) with the command **vmm
+ configure**.
+
+ If this option is set to *false*, **vmm**\(1) will start in the
+ interactive configurations mode.
+
+Example::
+
+ [config]
+ done = true
+
+DATABASE
+--------
+The **database** section is used to specify some options required to
+connect to the database.
+
+``host`` : *String*
+ Hostname or IP address of the database server.
+
+``name`` : *String*
+ Name of the database.
+
+``pass`` : *String*
+ Database password.
+
+``user`` : *String*
+ Name of the database user.
+
+Example::
+
+ [database]
+ host = localhost
+ user = vmm
+ pass = PY_SRJ}L/0p-oOk
+ name = mailsys
+
+DOMAIN
+------
+The **domain** section specifies some domain related settings.
+
+``auto_postmaster`` : *Boolean*
+ Determines if **vmm**\(1) should create also a postmaster account when a
+ new domain is created.
+
+``delete_directory`` : *Boolean*
+ Specifies whether the domain directory and all user directories inside
+ should be deleted when a domain is deleted.
+
+``directory_mode`` : *Int*
+ Access mode for the domain directory in decimal (base 10) notation.
+
+ | For example: 'drwxrwx---' -> octal 0770 -> decimal 504
+
+``force_deletion`` : *Boolean*
+ Force deletion of accounts and aliases when a domain is deleted.
+
+Example::
+
+ [domain]
+ auto_postmaster = true
+ delete_directory = false
+ directory_mode = 504
+ force_deletion = false
+
+MAILDIR
+-------
+The **maildir** section is used to specify some default options for new
+created Maildirs and folders inside.
+
+``folders`` : *String*
+ A colon separated list of folder names, that should be created. If no
+ folders should be created inside the Maildir, set the value of this
+ option to a single colon ('**:**').
+
+ If you want to create folders containing one or more subfolders, separate
+ them with a single dot ('**.**').
+
+``name`` : *String*
+ Default name of the Maildir folder in users home directories.
+
+Example::
+
+ [maildir]
+ folders = Drafts:Sent:Templates:Trash:Lists.Dovecot:Lists.Postfix
+ name = Maildir
+
+MISC
+----
+The **misc** section is used to define miscellaneous settings.
+
+``base_directory`` : *String*
+ All domain directories will be created inside this directory.
+
+``password_scheme`` : *String*
+ Password scheme to use (see also: **dovecotpw -l**).
+
+``gid_mail`` : *Int*
+ Numeric group ID of group mail (`mail_privileged_group` from
+ *dovecot.conf*)
+
+``transport`` : *String*
+ Default transport for domains and accounts. For details see
+ **transport**\(5).
+
+``dovecot_version`` : *Int*
+ The concatenated major and minor version number of the currently used
+ Dovecot version. (see: **dovecot --version**).
+
+ When, for example, the command **dovecot --version** prints *1.1.18*, set
+ the value of this option to **11**.
+
+Example::
+
+ [misc]
+ base_directory = /srv/mail
+ password_scheme = CRAM-MD5
+ gid_mail = 8
+ transport = dovecot:
+ dovecot_version = 11
+
+FILES
+=====
+*/root/vmm.cfg*
+ | will be used when found.
+*/usr/local/etc/vmm.cfg*
+ | will be used when the above file doesn't exist.
+*/etc/vmm.cfg*
+ | will be used when none of the both above mentioned files exists.
+
+SEE ALSO
+========
+vmm(1), command line tool to manage email domains/accounts/aliases
+
+COPYING
+=======
+vmm and its manual pages were written by Pascal Volk and are licensed under
+the terms of the BSD License.
+
--- a/setup.py Fri Jan 22 04:22:59 2010 +0000
+++ b/setup.py Fri Jan 22 04:31:38 2010 +0000
@@ -5,51 +5,57 @@
import os
from distutils.core import setup
+from distutils.dist import DistributionMetadata
VERSION = '0.5.2'
+descr = 'Tool to manage mail domains/accounts/aliases for Dovecot and Postfix'
long_description = """
vmm, a virtual mail manager, is a command line tool for
administrators/postmasters to manage (alias-)domains, accounts,
aliases and relocated users.
It is designed for Dovecot and Postfix with a PostgreSQL backend.
"""
+packages = ['VirtualMailManager', 'VirtualMailManager.ext',
+ 'VirtualMailManager.constants']
+classifiers = ['Development Status :: 5 - Production/Stable',
+ 'Environment :: Console',
+ 'Intended Audience :: System Administrators',
+ 'License :: OSI Approved :: BSD License',
+ 'Natural Language :: Dutch',
+ 'Natural Language :: English',
+ 'Natural Language :: French',
+ 'Natural Language :: German',
+ 'Operating System :: POSIX',
+ 'Operating System :: POSIX :: BSD',
+ 'Operating System :: POSIX :: Linux',
+ 'Operating System :: POSIX :: Other',
+ 'Programming Language :: Python',
+ 'Topic :: Communications :: Email',
+ 'Topic :: System :: Systems Administration',
+ 'Topic :: Utilities']
+
+# sucessfuly tested on:
+platforms = ['freebsd7', 'linux2', 'openbsd4']
# remove existing MANIFEST
if os.path.exists('MANIFEST'):
os.remove('MANIFEST')
+setup_args = {'name': 'VirtualMailManager',
+ 'version': VERSION,
+ 'description': descr,
+ 'long_description': long_description,
+ 'packages': packages,
+ 'author': 'Pascal Volk',
+ 'author_email': 'neverseen@users.sourceforge.net',
+ 'license': 'BSD License',
+ 'url': 'http://vmm.localdomain.org/',
+ 'download_url':'http://sf.net/projects/vmm/files/',
+ 'platforms': platforms,
+ 'classifiers': classifiers}
-setup(name='VirtualMailManager',
- version=VERSION,
- description='Tool to manage mail domains/accounts/aliases for Dovecot and Postfix',
- long_description=long_description,
- packages=['VirtualMailManager', 'VirtualMailManager.ext',
- 'VirtualMailManager.constants'],
- author='Pascal Volk',
- author_email='neverseen@users.sourceforge.net',
- license='BSD License',
- url='http://vmm.localdomain.org/',
- download_url='http://sf.net/projects/vmm/files/',
- platforms=['freebsd7', 'linux2', 'openbsd4'],
- classifiers=[
- 'Development Status :: 4 - Beta',
- 'Development Status :: 5 - Production/Stable',
- 'Environment :: Console',
- 'Intended Audience :: System Administrators',
- 'License :: OSI Approved :: BSD License',
- 'Natural Language :: Dutch',
- 'Natural Language :: English',
- 'Natural Language :: French',
- 'Natural Language :: German',
- 'Operating System :: POSIX',
- 'Operating System :: POSIX :: BSD',
- 'Operating System :: POSIX :: Linux',
- 'Operating System :: POSIX :: Other',
- 'Programming Language :: Python',
- 'Topic :: Communications :: Email',
- 'Topic :: System :: Systems Administration',
- 'Topic :: Utilities'
- ],
- requires=['pyPgSQL']
- )
+if 'requires' in DistributionMetadata._METHOD_BASENAMES:
+ setup_args['requires'] = ['pyPgSQL']
+
+setup(**setup_args)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/update_config.py Fri Jan 22 04:31:38 2010 +0000
@@ -0,0 +1,112 @@
+#!/usr/bin/env python
+# -*- coding: UTF-8 -*-
+# Copyright (c) 2008 - 2010, Pascal Volk
+# See COPYING for distribution information.
+
+import os
+os.sys.path.remove(os.sys.path[0])
+from time import time
+from ConfigParser import ConfigParser
+from shutil import copy2
+from VirtualMailManager.constants.VERSION import VERSION
+
+
+def get_config_file():
+ f = None
+ for d in ('/root', '/usr/local/etc', '/etc'):
+ tmp = os.path.join(d, 'vmm.cfg')
+ if os.path.isfile(tmp):
+ f = tmp
+ break
+ if f:
+ return f
+ else:
+ os.sys.stderr.write('error: vmm.cfg not found\n')
+ raise SystemExit(2)
+
+def update(cp):
+ if VERSION == '0.5.2':
+ upd_052(cp)
+ elif VERSION == '0.6.0':
+ os.sys.stdout.write('info: nothing to do for version %s\n' % VERSION)
+ return
+ else:
+ os.sys.stderr.write(
+ 'error: the version %s is not supported by this script\n' % VERSION)
+ raise SystemExit(3)
+
+def get_cfg_parser(cf):
+ fh = file(cf, 'r')
+ cp = ConfigParser()
+ cp.readfp(fh)
+ fh.close()
+ return cp
+
+def update_cfg_file(cp, cf):
+ copy2(cf, cf+'.bak.'+str(time()))
+ fh = file(cf, 'w')
+ cp.write(fh)
+ fh.close()
+
+def add_sections(cp, sections):
+ for section in sections:
+ if not cp.has_section(section):
+ cp.add_section(section)
+
+def move_option(cp, src, dst):
+ ds, do = dst.split('.')
+ if not cp.has_option(ds, do):
+ ss, so = src.split('.')
+ cp.set(ds, do, cp.get(ss, so))
+ cp.remove_option(ss, so)
+ sect_opt.append((dst, 'R'))
+
+def add_option(cp, dst, val):
+ ds, do = dst.split('.')
+ if not cp.has_option(ds, do):
+ cp.set(ds, do, val)
+ sect_opt.append((dst, 'N'))
+
+def get_option(cp, src):
+ ss, so = src.split('.')
+ return cp.get(ss, so)
+
+def upd_052(cp):
+ add_sections(cp, ('domain', 'account'))
+ if cp.has_section('domdir'):
+ for src, dst in (('domdir.mode', 'domain.directory_mode'),
+ ('domdir.delete', 'domain.delete_directory'),
+ ('domdir.base', 'misc.base_directory')):
+ move_option(cp, src, dst)
+ cp.remove_section('domdir')
+ if cp.has_section('services'):
+ for service in cp.options('services'):
+ move_option(cp, 'services.%s'%service, 'account.%s'%service)
+ cp.remove_section('services')
+ for src, dst in (('maildir.mode', 'account.directory_mode'),
+ ('maildir.diskusage', 'account.disk_usage'),
+ ('maildir.delete', 'account.delete_directory'),
+ ('misc.forcedel', 'domain.force_deletion'),
+ ('misc.passwdscheme', 'misc.password_scheme'),
+ ('misc.dovecotvers', 'misc.dovecot_version')):
+ move_option(cp, src, dst)
+ for dst, val in (('account.random_password', 'false'),
+ ('account.password_length', '8'),
+ ('domain.auto_postmaster', 'true')):
+ add_option(cp, dst, val)
+
+# def main():
+if __name__ == '__main__':
+ sect_opt = []
+ cf = get_config_file()
+ cp = get_cfg_parser(cf)
+ update(cp)
+ if len(sect_opt):
+ update_cfg_file(cp, cf)
+ sect_opt.sort()
+ print 'Please have a look at your configuration: %s' %cf
+ print 'This are your Renamed/New settings:'
+ for s_o, st in sect_opt:
+ print '%s %s = %s' % (st, s_o, get_option(cp, s_o))
+ print
+
--- a/update_config_0.4.x-0.5.py Fri Jan 22 04:22:59 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: UTF-8 -*-
-# Copyright (c) 2008 - 2010, Pascal Volk
-# See COPYING for distribution information.
-
-import os
-os.sys.path.remove(os.sys.path[0])
-from time import time
-from ConfigParser import ConfigParser
-from shutil import copy2
-from VirtualMailManager.constants.VERSION import VERSION
-
-
-def get_config_file():
- f = None
- for d in ('/root', '/usr/local/etc', '/etc'):
- tmp = os.path.join(d, 'vmm.cfg')
- if os.path.isfile(tmp):
- f = tmp
- break
- if f:
- return f
- else:
- os.sys.stderr.write('error: vmm.cfg not found\n')
- os.sys.exit(2)
-
-def update(cp):
- if VERSION == '0.4':
- upd_040(cp)
- elif VERSION == '0.5':
- upd_050(cp)
- elif VERSION == '0.5.1':
- upd_051(cp)
- elif VERSION == '0.5.2':
- os.sys.stdout.write('info: nothing to do for version %s\n' % VERSION)
- os.sys.exit(0)
- else:
- os.sys.stderr.write(
- 'error: the version %s is not supported by this script\n' % VERSION)
- os.sys.exit(3)
-
-def get_cfg_parser(cf):
- fh = file(cf, 'r')
- cp = ConfigParser()
- cp.readfp(fh)
- fh.close()
- return cp
-
-def update_cfg_file(cp, cf):
- copy2(cf, cf+'.bak.'+str(time()))
- fh = file(cf, 'w')
- cp.write(fh)
- fh.close()
-
-def upd_040(cp):
- if not cp.has_option('maildir', 'name') or not cp.has_option('maildir',
- 'folders') or cp.has_option('maildir', 'folder'):
- if not cp.has_option('maildir', 'name'):
- if cp.has_option('maildir', 'folder'):
- cp.set('maildir', 'name', cp.get('maildir', 'folder'))
- cp.remove_option('maildir', 'folder')
- sect_opt.append(('maildir', 'name'))
- else:
- cp.set('maildir', 'name', 'Maildir')
- sect_opt.append(('maildir', 'name'))
- if not cp.has_option('maildir', 'folders'):
- cp.set('maildir', 'folders', 'Drafts:Sent:Templates:Trash')
- sect_opt.append(('maildir', 'folders'))
- if cp.has_option('maildir', 'folder'):
- cp.remove_option('maildir', 'folder')
- upd_050(cp)
-
-def upd_050(cp):
- if not cp.has_option('bin', 'postconf'):
- try:
- postconf = os.sys.argv[1].strip()
- if len(postconf):
- cp.set('bin', 'postconf', postconf)
- sect_opt.append(('bin', 'postconf'))
- else: # possible?
- cp.set('bin', 'postconf', '/usr/sbin/postconf')
- sect_opt.append(('bin', 'postconf'))
- except IndexError:
- cp.set('bin', 'postconf', '/usr/sbin/postconf')
- sect_opt.append(('bin', 'postconf'))
- upd_051(cp)
-
-def upd_051(cp):
- if not cp.has_option('misc', 'dovecotvers') or cp.has_option('services',
- 'managesieve'):
- if not cp.has_option('misc', 'dovecotvers'):
- cp.set('misc', 'dovecotvers', os.sys.argv[2].strip())
- sect_opt.append(('misc', 'dovecotvers'))
- if cp.has_option('services', 'managesieve'):
- cp.set('services','sieve',cp.getboolean('services', 'managesieve'))
- cp.remove_option('services', 'managesieve')
- sect_opt.append(('services', 'sieve'))
-
-# def main():
-if __name__ == '__main__':
- sect_opt = []
- cf = get_config_file()
- cp = get_cfg_parser(cf)
- update(cp)
- if len(sect_opt):
- update_cfg_file(cp, cf)
- print 'Please have a look at your configuration: %s' %cf
- print 'and verify the value from:'
- for s_o in sect_opt:
- print ' [%s] %s' % s_o
- print
-
-
--- a/upgrade.sh Fri Jan 22 04:22:59 2010 +0000
+++ b/upgrade.sh Fri Jan 22 04:31:38 2010 +0000
@@ -29,7 +29,7 @@
fi
# update config file before installing the new files.
-./update_config_0.4.x-0.5.py ${POSTCONF} ${DOVECOT_VERS:-10}
+./update_config.py
rv=$?
if [ $rv -eq 2 ]; then
echo "please run the install.sh script"
@@ -43,7 +43,7 @@
exit 1
fi
-python setup.py -q install --prefix ${PREFIX}
+python setup.py -q install --force --prefix ${PREFIX}
python setup.py clean --all >/dev/null
install -m 0700 ${INSTALL_OPTS} vmm ${PREFIX}/sbin
@@ -58,14 +58,6 @@
done
cd - >/dev/null
-# remove misplaced manual pages
-if [ -f /usr/local/share/man/man1/vmm.1 ]; then
- rm -f /usr/local/share/man/man1/vmm.1
-fi
-if [ -f /usr/local/share/man/man5/vmm.cfg.5 ]; then
- rm -f /usr/local/share/man/man5/vmm.cfg.5
-fi
-
# install manual pages
cd man
[ -d ${MANDIR}/man1 ] || mkdir -m 0755 -p ${MANDIR}/man1
@@ -74,7 +66,7 @@
[ -d ${MANDIR}/man5 ] || mkdir -m 0755 -p ${MANDIR}/man5
install -m 0644 ${INSTALL_OPTS} man5/vmm.cfg.5 ${MANDIR}/man5
-for l in $(find . -maxdepth 1 -mindepth 1 -type d \! -name man\? \! -name .svn)
+for l in $(find . -maxdepth 1 -mindepth 1 -type d \! -name man\?)
do
for s in man1 man5; do
[ -d ${MANDIR}/${l}/${s} ] || mkdir -m 0755 -p ${MANDIR}/${l}/${s}
--- a/vmm Fri Jan 22 04:22:59 2010 +0000
+++ b/vmm Fri Jan 22 04:31:38 2010 +0000
@@ -77,7 +77,7 @@
def _getOrder():
order = ()
- if vmm.cfgGetInt('misc', 'dovecotvers') > 11:
+ if vmm.cfgGetInt('misc', 'dovecot_version') > 11:
sieve_name = u'sieve'
else:
sieve_name = u'managesieve'
@@ -87,7 +87,7 @@
(u'aliases', 0), (u'relocated', 0))
elif argv[1] in (u'ui', u'userinfo'):
if argc == 4 and argv[3] != u'aliases'\
- or vmm.cfgGetBoolean('maildir', 'diskusage'):
+ or vmm.cfgGetBoolean('account', 'disk_usage'):
order = ((u'address', 0), (u'name', 0), (u'uid', 1), (u'gid', 1),
(u'transport', 0), (u'maildir', 0), (u'disk usage', 0),
(u'smtp', 1), (u'pop3', 1), (u'imap', 1), (sieve_name, 1))
--- a/vmm.cfg Fri Jan 22 04:22:59 2010 +0000
+++ b/vmm.cfg Fri Jan 22 04:31:38 2010 +0000
@@ -12,52 +12,60 @@
user = dbuser
; Database password (String)
pass = dbpassword
-; database name (String)
+; Database name (String)
name = mailsys
#
-# Mail directories
+# Maildir folder
#
[maildir]
; Default name of the Maildir folder (String)
name = Maildir
; A colon separated list of folder names, that should be created (String)
-; e.g.: folders = Drafts:Sent:Templates:Trash
+; e.g.: folders = Drafts:Sent:Templates:Trash:Lists.Dovecot:Lists.Postfix
folders = Drafts:Sent:Templates:Trash
-; Permissions for maildirs (Int)
-; octal 0700 -> decimal 448
-mode = 448
-; Display disk usage in account info by default? (Boolean)
-diskusage = false
-; Delete maildir recursive when deleting an account? (Boolean)
-delete = false
+
+#
+# Domain settings
+#
+[domain]
+; Should vmm create the postmaster account when a new domain is created?
+; (Boolean)
+auto_postmaster = true
+; Delete domain directory recursive when deleting a domain? (Boolean)
+delete_directory = false
+; Permissions for domain directories (Int)
+; octal 0770 -> decimal 504
+directory_mode = 504
+; Force deletion of accounts and aliases when deleting a domain (Boolean)
+force_deletion = false
#
-# Services per user
+# Account settings
#
-[services]
-; allow smtp by default? (Boolean)
+[account]
+; Delete the user's home directory recursive when deleting an account? (Boolean)
+delete_directory = false
+; Permissions for the user's home directory and mail directories (Int)
+; octal 0700 -> decimal 448
+directory_mode = 448
+; Display disk usage in account info by default? (Boolean)
+disk_usage = false
+; Should vmm generate a random password when no password was given for the
+; useradd subcommand? (Boolean)
+random_password = false
+; How many characters to include in the generated passwords? (Int)
+password_length = 8
+; Allow smtp by default? (Boolean)
smtp = true
-; allow pop3 by default? (Boolean)
+; Allow pop3 by default? (Boolean)
pop3 = true
-; allow imap by default? (Boolean)
+; Allow imap by default? (Boolean)
imap = true
-; allow managesieve by default? (Boolean)
+; Allow managesieve by default? (Boolean)
sieve = true
#
-# domain directory settings
-#
-[domdir]
-; The base directory for all domains/accounts (String)
-base = /srv/mail
-; Permissions for domain directories (Int)
-; octal 0770 -> decimal 504
-mode = 504
-; Delete domain directory recursive when deleting a domain? (Boolean)
-delete = false
-
-#
# external binaries
#
[bin]
@@ -72,17 +80,17 @@
# misc settings
#
[misc]
+; The base directory for all domains/accounts (String)
+base_directory = /srv/mail
; Password scheme to use (see also: dovecotpw -l) (String)
-passwdscheme = PLAIN
+password_scheme = PLAIN
; numeric group ID of group mail (mail_privileged_group from dovecot.conf) (Int)
gid_mail = 8
-; force deletion of accounts and aliases (Boolean)
-forcedel = false
-; default transport for domains and accounts
+; default transport for domains and accounts (String)
transport = dovecot:
; the concatenated major and minor version number from `dovecot --version` (Int)
; e.g. 1.0.15 -> 10; 1.1.18 -> 11; 1.2.3 -> 12
-dovecotvers = 11
+dovecot_version = 11
#
# Configuration state