Imported Upstream version 0.63.0
[hcoop/debian/courier-authlib.git] / authpgsqlrc
CommitLineData
8d138742 1##VERSION: $Id: authpgsqlrc,v 1.13 2008/12/18 12:08:25 mrsam Exp $
d9898ee8 2#
3# Copyright 2000-2004 Double Precision, Inc. See COPYING for
4# distribution information.
5#
6# Do not alter lines that begin with ##, they are used when upgrading
7# this configuration.
8#
9# authpgsqlrc created from authpgsqlrc.dist by sysconftool
10#
11# DO NOT INSTALL THIS FILE with world read permissions. This file
12# might contain the PostgreSQL admin password!
13#
14# Each line in this file must follow the following format:
15#
16# field[spaces|tabs]value
17#
18# That is, the name of the field, followed by spaces or tabs, followed by
19# field value. Trailing spaces are prohibited.
20
21
22##NAME: LOCATION:0
23#
24# The server hostname, port, userid, and password used to log in.
25#
26# To connect to a filesystem socket, delete PGSQL_HOST, and set PGSQL_PORT to
27# the socket's last component. So, if your pg socket is /tmp/.s.PGSQL.5400
28# set PGSQL_PORT to 5400.
29
30PGSQL_HOST pgsql.example.com
31PGSQL_PORT 5400
32PGSQL_USERNAME admin
33PGSQL_PASSWORD admin
34
35
36##NAME: PGSQL_OPT:0
37#
38# PGSQL_OPT specifies the connection debug options to PQsetdbLogin().
39# Don't bother with this setting unless you know what you're doing
40#
41# PGSQL_OPT
42
43##NAME: PGSQL_DATABASE:0
44#
45# The name of the PostgreSQL database we will open:
46
47PGSQL_DATABASE template1
48
8d138742
CE
49##NAME: PGSQL_CHARACTER_SET:0
50#
51# Optionally install a character set mapping. Restart authdaemond, send a test
52# query using authtest and check for error messages in syslog/maillog.
53#
54# PGSQL_CHARACTER_SET UTF8
55
d9898ee8 56##NAME: PGSQL_USER_TABLE:0
57#
58# The name of the table containing your user data. See README.authmysqlrc
59# for the required fields in this table (both MySQL and Postgress use the
60# same suggested layout.
61
62PGSQL_USER_TABLE passwd
63
64##NAME: PGSQL_CRYPT_PWFIELD:0
65#
66# Either PGSQL_CRYPT_PWFIELD or PGSQL_CLEAR_PWFIELD must be defined. Both
67# are OK too. crypted passwords go into PGSQL_CRYPT_PWFIELD, cleartext
68# passwords go into PGSQL_CLEAR_PWFIELD. Cleartext passwords allow
69# CRAM-MD5 authentication to be implemented.
70
71PGSQL_CRYPT_PWFIELD crypt
72
73##NAME: PGSQL_CLEAR_PWFIELD:0
74#
75#
76# PGSQL_CLEAR_PWFIELD clear
77
78##NAME: PGSQL_DEFAULT_DOMAIN:0
79#
80# If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user',
81# we will look up 'user@DEFAULT_DOMAIN' instead.
82#
83#
84# DEFAULT_DOMAIN example.com
85
86##NAME: PGSQL_UID_FIELD:0
87#
88# Other fields in the mysql table:
89#
90# PGSQL_UID_FIELD - contains the numerical userid of the account
91#
92PGSQL_UID_FIELD uid
93
94##NAME: PGSQL_GID_FIELD:0
95#
96# Numerical groupid of the account
97
98PGSQL_GID_FIELD gid
99
100##NAME: PGSQL_LOGIN_FIELD:0
101#
102# The login id, default is id. Basically the query is:
103#
104# SELECT PGSQL_UID_FIELD, PGSQL_GID_FIELD, ... WHERE id='loginid'
105#
106
107PGSQL_LOGIN_FIELD id
108
109##NAME: PGSQL_HOME_FIELD:0
110#
111
112PGSQL_HOME_FIELD home
113
114##NAME: PGSQL_NAME_FIELD:0
115#
116# The user's name (optional)
117
118PGSQL_NAME_FIELD name
119
120##NAME: PGSQL_MAILDIR_FIELD:0
121#
122# This is an optional field, and can be used to specify an arbitrary
123# location of the maildir for the account, which normally defaults to
124# $HOME/Maildir (where $HOME is read from PGSQL_HOME_FIELD).
125#
126# You still need to provide a PGSQL_HOME_FIELD, even if you uncomment this
127# out.
128#
129# PGSQL_MAILDIR_FIELD maildir
130
131##NAME: PGSQL_DEFAULTDELIVERY:0
132#
133# Courier mail server only: optional field specifies custom mail delivery
134# instructions for this account (if defined) -- essentially overrides
135# DEFAULTDELIVERY from ${sysconfdir}/courierd
136#
137# PGSQL_DEFAULTDELIVERY defaultDelivery
138
139##NAME: PGSQL_QUOTA_FIELD:0
140#
141# Define PGSQL_QUOTA_FIELD to be the name of the field that can optionally
142# specify a maildir quota. See README.maildirquota for more information
143#
144# PGSQL_QUOTA_FIELD quota
145
146##NAME: PGSQL_AUXOPTIONS:0
147#
148# Auxiliary options. The PGSQL_AUXOPTIONS field should be a char field that
149# contains a single string consisting of comma-separated "ATTRIBUTE=NAME"
150# pairs. These names are additional attributes that define various per-account
151# "options", as given in INSTALL's description of the "Account OPTIONS"
152# setting.
153#
154# PGSQL_AUXOPTIONS_FIELD auxoptions
155#
156# You might want to try something like this, if you'd like to use a bunch
157# of individual fields, instead of a single text blob:
158#
159# PGSQL_AUXOPTIONS_FIELD 'disableimap=' || disableimap || ',disablepop3=' || disablepop3 || ',disablewebmail=' || disablewebmail || ',sharedgroup=' || sharedgroup
160#
161# This will let you define fields called "disableimap", etc, with the end result
162# being something that the OPTIONS parser understands.
163
164##NAME: PGSQL_WHERE_CLAUSE:0
165#
166# This is optional, PGSQL_WHERE_CLAUSE can be basically set to an arbitrary
167# fixed string that is appended to the WHERE clause of our query
168#
169# PGSQL_WHERE_CLAUSE server='mailhost.example.com'
170
171##NAME: PGSQL_SELECT_CLAUSE:0
172#
173# (EXPERIMENTAL)
174# This is optional, PGSQL_SELECT_CLAUSE can be set when you have a database,
175# which is structuraly different from proposed. The fixed string will
176# be used to do a SELECT operation on database, which should return fields
177# in order specified bellow:
178#
179# username, cryptpw, clearpw, uid, gid, home, maildir, quota, fullname, options
180#
181# Enabling this option causes ignorance of any other field-related
182# options, excluding default domain.
183#
184# There are two variables, which you can use. Substitution will be made
185# for them, so you can put entered username (local part) and domain name
186# in the right place of your query. These variables are:
187# $(local_part), $(domain), and $(service)
188#
189# If a $(domain) is empty (not given by the remote user) the default domain
190# name is used in its place.
191#
192# $(service) will expand out to the service being authenticated: imap, imaps,
193# pop3 or pop3s. Courier mail server only: service will also expand out to
194# "courier", when searching for local mail account's location. In this case,
195# if the "maildir" field is not empty it will be used in place of
196# DEFAULTDELIVERY. Courier mail server will also use esmtp when doing
197# authenticated ESMTP.
198#
199# This example is a little bit modified adaptation of vmail-sql
200# database scheme:
201#
202# PGSQL_SELECT_CLAUSE SELECT popbox.local_part, \
203# '{MD5}' || popbox.password_hash, \
204# popbox.clearpw, \
205# domain.uid, \
206# domain.gid, \
207# domain.path || '/' || popbox.mbox_name), \
208# '', \
209# domain.quota, \
210# '', \
211# FROM popbox, domain \
212# WHERE popbox.local_part = '$(local_part)' \
213# AND popbox.domain_name = '$(domain)' \
214# AND popbox.domain_name = domain.domain_name
215
216
217##NAME: PGSQL_ENUMERATE_CLAUSE:1
218#
219# {EXPERIMENTAL}
220# Optional custom SQL query used to enumerate accounts for authenumerate,
221# in order to compile a list of accounts for shared folders. The query
222# should return the following fields: name, uid, gid, homedir, maildir, options
223#
224# Example:
225# PGSQL_ENUMERATE_CLAUSE SELECT popbox.local_part || '@' || popbox.domain_name, \
226# domain.uid, \
227# domain.gid, \
228# domain.path || '/' || popbox.mbox_name, \
229# '', \
230# 'sharedgroup=' || sharedgroup \
231# FROM popbox, domain \
232# WHERE popbox.local_part = '$(local_part)' \
233# AND popbox.domain_name = '$(domain)' \
234# AND popbox.domain_name = domain.domain_name
235
236
237##NAME: PGSQL_CHPASS_CLAUSE:0
238#
239# (EXPERIMENTAL)
240# This is optional, PGSQL_CHPASS_CLAUSE can be set when you have a database,
241# which is structuraly different from proposed. The fixed string will
242# be used to do an UPDATE operation on database. In other words, it is
243# used, when changing password.
244#
245# There are four variables, which you can use. Substitution will be made
246# for them, so you can put entered username (local part) and domain name
247# in the right place of your query. There variables are:
248# $(local_part) , $(domain) , $(newpass) , $(newpass_crypt)
249#
250# If a $(domain) is empty (not given by the remote user) the default domain
251# name is used in its place.
252# $(newpass) contains plain password
253# $(newpass_crypt) contains its crypted form
254#
255# PGSQL_CHPASS_CLAUSE UPDATE popbox \
256# SET clearpw='$(newpass)', \
257# password_hash='$(newpass_crypt)' \
258# WHERE local_part='$(local_part)' \
259# AND domain_name='$(domain)'
260#