[Dovecot] General question for Dovecot under OpenBSD
Hello All,
First of all thanks a lot for providing a quality software such as Dovecot.
I am having troubles for setting up the config files of OpenBSD's binary package of Dovecot, flavor sieve/mysql.
Do you know where some documentation could be found for setting up correctly the .conf (dovecot.conf & dovecot-sql.conf) since it does not even load ("Error in configuration file /etc/dovecot.conf line 871: Unknows setting: args").
I shall understand that the problem lies in dovecot-sql.conf, which is not a file I understand well and can configure correctly, as it seems.
Some more docs/infos about this issue could be helpful.
Thks,
JF
jean-francois wrote:
Maybe if you specify output of dovecot -n, your config file content around the error line and the content of your dovecot-sql.conf, we can actually answer your questions :)
Also, maybe this wiki page can help you: http://wiki.dovecot.org/AuthDatabase/SQL
-- Regards, Tom
Hi,
As requested.
$ sudo dovecot -n
1.0.15: /etc/dovecot.conf
Error: Error in configuration file /etc/dovecot.conf line 871: Unknown setting: args Fatal: Invalid configuration in /etc/dovecot.con
Error line in dovecot.conf :
SQL database <doc/wiki/AuthDatabase.SQL.txt>
#passdb sql { # Path for SQL configuration file, see doc/dovecot-sql-example.conf args = /etc/dovecot-sql.conf #}
dovecot-sql.conf :
This file is opened as root, so it should be owned by root and mode 0600.
http://wiki.dovecot.org/AuthDatabase/SQL
For the sql passdb module, you'll need a database with a table that
contains fields for at least the userid and password. If you want to
use the user@domain syntax, you might want to have a separate domain
field as well.
If your users all have the same uig/gid, and have predictable home
directories, you can use the static userdb module to generate the home
dir based on the userid and domain. In this case, you won't need fields
for home, uid, or gid in the database.
If you prefer to use the sql userdb module, you'll want to add fields
for home, uid, and gid. Here is an example table:
CREATE TABLE users (
userid VARCHAR(128) NOT NULL,
password VARCHAR(64) NOT NULL,
home VARCHAR(255) NOT NULL,
uid INTEGER NOT NULL,
gid INTEGER NOT NULL,
active CHAR(1) DEFAULT 'Y' NOT NULL
);
Database driver: mysql, pgsql, sqlite
driver = mysql
Database connection string. This is driver-specific setting.
pgsql:
For available options, see the PostgreSQL documention for the
PQconnectdb function of libpq.
mysql:
Basic options emulate PostgreSQL option names:
host, port, user, password, dbname
But also adds some new settings:
client_flags - See MySQL manual
ssl_ca, ssl_ca_path - Set either one or both to enable SSL
ssl_cert, ssl_key - For sending client-side certificates to server
ssl_cipher - Set minimum allowed cipher security (default:
HIGH)
You can connect to UNIX sockets by using host: host=/var/run/mysql.sock
Note that currently you can't use spaces in parameters.
sqlite:
The path to the database file.
Examples:
connect = host=/var/www/htdocs/pro/mysql/mysql.sock dbname=mail user=user password=pass
connect = host=sql.example.com dbname=virtual user=virtual
password=blarg
connect = /etc/dovecot/authdb.sqlite
#connect = dbname=virtual user=virtual
Default password scheme.
List of supported schemes is in
http://wiki.dovecot.org/Authentication/PasswordSchemes
#default_pass_scheme = PLAIN-MD5
Query to retrieve the password.
This query must return only one row with "user" and "password" columns.
The query can also return other fields which have a special meaning, see
http://wiki.dovecot.org/PasswordDatabase/ExtraFields
The "user" column is needed to make sure the username gets used with
exactly
the same casing as it's in the database. Note that if you store username
and
domain in separate fields, you most likely want to return a combination of
them as the "user" column, otherwise the domain gets stripped.
Commonly used available substitutions (see
http://wiki.dovecot.org/Variables for full list):
%u = entire userid
%n = user part of user@domain
%d = domain part of user@domain
Note that these can be used only as input to SQL query. If the query
outputs
any of these substitutions, they're not touched. Otherwise it would be
difficult to have eg. usernames containing '%' characters.
Example:
password_query = SELECT concat(userid, '@', domain) AS user, password
FROM users WHERE userid = '%n' AND domain = '%d'
password_query = SELECT pw AS password FROM users WHERE userid = '%u'
AND active = 'Y'
password_query = SELECT userid as user, password FROM users WHERE userid = '%u'
Query to retrieve the user information.
The query must return only one row. Commonly returned columns are:
uid - System UID
gid - System GID
home - Home directory
mail - Mail location
Either home or mail is required. uid and gid are required. If more than
one
row is returned or there are missing fields, the login will fail. For a
list
of all fields that can be returned, see
http://wiki.dovecot.org/UserDatabase/ExtraFields
Examples
user_query = SELECT home, uid, gid FROM users WHERE userid = '%n' AND
domain = '%d'
user_query = SELECT dir AS home, user AS uid, group AS gid FROM users
where userid = '%u'
user_query = SELECT home, 501 AS uid, 501 AS gid FROM users WHERE userid
= '%u'
#user_query = SELECT home, uid, gid FROM users WHERE userid = '%u'
If you wish to avoid two SQL lookups (passdb + userdb), you can use
userdb prefetch instead of userdb sql in dovecot.conf. In that case you'll
also have to return userdb fields in password_query prefixed with
"userdb_"
string. For example:
#password_query = SELECT userid as user, password, home as userdb_home, uid as userdb_uid, gid as userdb_gid FROM users WHERE userid = '%u'
2009/9/14 Tom Hendrikx <tom@whyscream.net>
On 09/14/2009 11:13 PM Jean-François SIMON wrote:
Please stop top-posting. Thanks in advance.
If you want to use passdb sql remove the comment hashes:
SQL database <doc/wiki/AuthDatabase.SQL.txt>
passdb sql {
Path for SQL configuration file, see doc/dovecot-sql-example.conf
args = /etc/dovecot-sql.conf }
Regards, Pascal
The trapper recommends today: defaced.0925723@localdomain.org
Sorry to bother you however I'm having some troubles and can't understand what is required to adapt here, as now I have this error :
Error: Error in configuration file /etc/dovecot.conf line 1022: Plugin section not allowed here (section changed at line 997) Fatal: Invalid configuration in /etc/dovecot.conf
Line 997 is last line of following :
It's possible to export the authentication interface to other programs:
#socket listen { #master { # Master socket provides access to userdb information. It's typically # used to give Dovecot's local delivery agent access to userdb so it # can find mailbox locations. #path = /var/run/dovecot/auth-master #mode = 0600 # Default user/group is the one who started dovecot-auth (root) #user = #group = #} #client { # The client socket is generally safe to export to everyone. Typical use # is to export it to your SMTP server so it can do SMTP AUTH lookups # using it. #path = /var/run/dovecot/auth-client #mode = 0660 #} #} }
Line 1022 is here :
dict { #quota = mysql:/etc/dovecot-dict-quota.conf #}
participants (5)
-
Charles Marcus
-
jean-francois
-
Jean-François SIMON
-
Pascal Volk
-
Tom Hendrikx