2015-02-11 166 views
0

我正在將imap-courier遷移到dovecot,我使用openbsd + postfix + imap-courier,現在我試圖運行openbsd + opensmtpd + dovecot的。dovecot passdb中的密碼無效:不是有效的MD5-CRYPT或PLAIN-MD5密碼

在開始時它是一個有點traumante,但它正確地運作OpenSMTPD。

現在我配置了dovecot,並且我希望您的後端授權是使用imap-courier的同一個數據庫。

In /var/log/maillog receipt the following error 
auth-worker(2915): Error: sql([email protected],199.254.238.134): `Invalid password in passdb: Not a valid MD5-CRYPT or PLAIN-MD5 password` 

我/etc/dovecot/dovecot-sql.conf.ext

password_query = \ 
    SELECT login, password \ 
    FROM users WHERE login = '%u' 

我的數據庫MySQL的啓動以及

mysql> CREATE DATABASE mail; 
Query OK, 1 row affected (0.01 sec) 

mysql> use mail 
Database changed 
mysql> CREATE TABLE domains (
    ->  id  INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    ->  domain VARCHAR(255) NOT NULL UNIQUE); 
Query OK, 0 rows affected (0.02 sec) 

mysql> CREATE TABLE users (
    ->  id  INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    ->  login VARCHAR(255) NOT NULL UNIQUE, 
    ->  name  VARCHAR(255) NOT NULL, 
    ->  password CHAR(13) NOT NULL, 
    ->  uid  SMALLINT NOT NULL DEFAULT 2000, 
    ->  gid  SMALLINT NOT NULL DEFAULT 2000, 
    ->  home  VARCHAR(255) NOT NULL DEFAULT '/var/vmail', 
    ->  maildir VARCHAR(255) NOT NULL, 
    ->  quota VARCHAR(10) NOT NULL DEFAULT '10000000S'); 
Query OK, 0 rows affected (0.01 sec) 

mysql> CREATE TABLE alias_maps (
    ->  id  INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    ->  account VARCHAR(255) NOT NULL UNIQUE, 
    ->  alias VARCHAR(255) NOT NULL); 
Query OK, 0 rows affected (0.00 sec) 

mysql> GRANT SELECT ON mail.* to 'vmail'@'localhost' IDENTIFIED BY 'vmail'; 
Query OK, 0 rows affected (0.01 sec) 

mysql> FLUSH PRIVILEGES; 

不適合我這個過去的這個錯誤插入我這樣做:

mysql> INSERT INTO users (login, name, password, maildir) 
    -> VALUES ('[email protected]', 'name lastname', ENCRYPT('pass'), 
    ->   'domain.tld/name/'); 

哪位幫我獲好評

感謝所有

+0

這裏有問題嗎?這似乎更多地是關於服務器配置而不是編程。 – Max 2015-02-11 21:00:25

回答

0

當使用CRYPT加密密碼,你必須投入的dovecot-sql.conf.ext以下

default_pass_scheme = CRYPT 

我希望這能幫助更多的人,除了讓你爲我做了我的查詢:

password_query = \ 
    SELECT password \ 
    FROM users WHERE login = '%u' 
0

建議立即進行刪除是:

mysql> INSERT INTO users (login, name, password, maildir) 
    -> VALUES ('[email protected]', 'name lastname', **MD5**('pass'), 
    ->   'domain.tld/name/');