URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 93640
[ Назад ]

Исходное сообщение
"dovecot+postfix+sql = не могу осилить"

Отправлено snooooop , 03-Авг-12 13:08 
всем hi!
вроде и поставил, вроде и письма ходят...но вот всё не до конца работает правильно.
удаляю письма, жму Ф9 в аутлуке, а они снова валятся!
в логах постфикса нет ошибок, довекот вот такое пишет

Error: Sync failed for mbox file /var/mail/mail.user: Expunged message reappeared to mailbox (UID 2898 < 2901, seq=1, idx_msgs=0)

Aug 03 15:50:50 imap(mail.user@ma.ru): Error: Sync failed for mbox file /var/mail/mail.user: Expunged message reappeared to mailbox (UID 2898 < 2901, seq=1, idx_msgs=0)

про какие UID он пишет? понять не могу(((
кляните меня опять чёрными словами, но помогите, а? уже неделю как мучаюсь...и авторизацию прикрутил и научил довекот понимать пароли страшно шифрованные...а всё чет не до конца крутится
до некоторых ящиков почта уходит
Aug  3 16:11:47 mailtest postfix/pipe[2337]: 181CA61AC9: to=<super-dry@ma.ru>, relay=dovecot, delay=0.07, delays=0.04/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot service)
а в ящиках не появляется.


Содержание

Сообщения в этом обсуждении
"dovecot+postfix+sql = не могу осилить"
Отправлено ALex_hha , 03-Авг-12 14:02 
> Expunged message reappeared to mailbox (UID 2898 < 2901, seq=1, idx_msgs=0)

покажи dovecot -n

> про какие UID он пишет? понять не могу(((

у каждого пользователя есть свой uid ;)


"dovecot+postfix+sql = не могу осилить"
Отправлено snooooop , 06-Авг-12 06:04 
> покажи dovecot -n

# 2.0.19: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-26-generic x86_64 Ubuntu 12.04 LTS
auth_debug = yes
auth_mechanisms = plain login
debug_log_path = /var/log/dovecot.log
first_valid_gid = 555
first_valid_uid = 555
info_log_path = /var/log/dovecot-info.log
last_valid_gid = 555
last_valid_uid = 555
log_path = /var/log/dovecot.log
mail_access_groups = mail
mail_debug = yes
mail_gid = 555
mail_privileged_group = mail
mail_uid = 555
passdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
postmaster_address = snoop@ema.ru
protocols = " imap pop3"
service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0666
  }
  unix_listener auth-userdb {
    group = mail
    mode = 0600
    user = mail
  }
}
ssl_cert = </etc/dovecot/ssl/dovecot.crt
ssl_key = </etc/dovecot/ssl/dovecot.key
userdb {
  args = /etc/dovecot/dovecot-sql.conf
  driver = sql
}
protocol pop3 {
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_uidl_format = %08Xu%08Xv
}

>> про какие UID он пишет? понять не могу(((
> у каждого пользователя есть свой uid ;)

да ладно, хорош прикалываться, у меня постфикс админ, все через базу данных сделано, в ней я никаких uid не нашёл.


"dovecot+postfix+sql = не могу осилить"
Отправлено кегна , 03-Авг-12 17:03 
>[оверквотинг удален]
> Expunged message reappeared to mailbox (UID 2898 < 2901, seq=1, idx_msgs=0)
> про какие UID он пишет? понять не могу(((
> кляните меня опять чёрными словами, но помогите, а? уже неделю как мучаюсь...и
> авторизацию прикрутил и научил довекот понимать пароли страшно шифрованные...а всё чет
> не до конца крутится
> до некоторых ящиков почта уходит
> Aug  3 16:11:47 mailtest postfix/pipe[2337]: 181CA61AC9: to=<super-dry@ma.ru>, relay=dovecot,
> delay=0.07, delays=0.04/0.01/0/0.02, dsn=2.0.0, status=sent (delivered via dovecot
> service)
> а в ящиках не появляется.

рабочие конфиги. все работает от пользователя virtual. его uid и gid 1981 (именно эти и используются ИД используются в запросе и в настройках dovecot)
пути фрёвые. т.к. работаю тока с фрей.

$ cat /etc/passwd | grep virtual
virtual:*:1981:1981:User &:/var/mail/virtual:/usr/sbin/nologin

$ cat /usr/local/etc/dovecot-sql.conf
driver = mysql
connect = host=/tmp/mysql.sock dbname=postfix user=postfix password=xxxxxxxxxxxxxxxxxxxxxx
default_pass_scheme = MD5-CRYPT
password_query = SELECT username AS user,password FROM mailbox WHERE username = '%u' AND active = '1' LIMIT 1
user_query = SELECT maildir, 1981 AS uid, 1981 AS gid, CONCAT('maildir:storage=', FLOOR( quota / 1024 ) ) AS quota FROM mailbox WHERE username = '%u' AND active = '1'

$ cat /usr/local/etc/dovecot.conf
base_dir = /var/run/dovecot/

protocols = pop3 pop3s imap imaps managesieve
ssl_cert_file=/usr/local/etc/dovecot/cert.pem
ssl_key_file=/usr/local/etc/dovecot/key.pem
mail_location = maildir:/var/mail/virtual/%d/%n

protocol imap  {
    listen=*:143
    ssl_listen=*:993
    mail_plugins = quota imap_quota
    imap_client_workarounds = delay-newmail outlook-idle netscape-eoh tb-extra-mailbox-sep
    imap_logout_format = bytes=%i/%o
}

protocol pop3  {
    listen=*:110
    ssl_listen=*:995
    pop3_uidl_format = %08Xu%08Xv
    pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
    mail_plugins = quota
}

protocol lda {
  postmaster_address = postmaster@xxxxxxx.xx
  hostname = xxxxxxxx.xxxxxxxxx.xx
  mail_plugins = quota sieve
  deliver_log_format = msgid=%m: %$ %f
  sendmail_path = /usr/sbin/sendmail
  auth_socket_path = /var/run/dovecot/auth-master
}

shutdown_clients = yes
log_timestamp = "%Y-%m-%d %H:%M:%S "
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
syslog_facility = mail

first_valid_uid = 1981
last_valid_uid = 1981
first_valid_gid = 1981
last_valid_gid = 1981


maildir_stat_dirs = yes
maildir_copy_with_hardlinks = yes
maildir_copy_preserve_filename = no

namespace private {
    separator = /
    prefix =
    inbox = yes
}

auth default {
    mechanisms = plain login cram-md5
    socket listen {
     master {
            path = /var/run/dovecot/auth-master
        mode = 0600
        user = virtual
        group = virtual
    }
    client {
        path = /var/spool/postfix/private/dovecot-smtp-auth
        mode = 0660
        user = postfix
        group = postfix
    }
    }
    passdb sql {
    args = /usr/local/etc/dovecot-sql.conf
    }
    userdb sql {
    args = /usr/local/etc/dovecot-sql.conf
    }
    user=virtual
}

plugin {
    quota = maildir
    quota_rule2 = Trash:storage=500M
    sieve = ~/.dovecot.sieve
    sieve_global_path = /var/mail/virtual/.sieve
}


"dovecot+postfix+sql = не могу осилить"
Отправлено snooooop , 06-Авг-12 06:36 
что то с правами я не могу догнать...
сейчас ошибка
Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: user andrey.gizbrekht@ema.ru: Couldn't drop privileges: User is missing UID (see mail_uid setting)
Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: Internal error occurred. Refer to server log for more information.

ls /var/ -lh

drwxrwsrwx  3 mail mail  4.0K Aug  5 06:35 mail


"dovecot+postfix+sql = не могу осилить"
Отправлено кегна , 06-Авг-12 11:58 
> что то с правами я не могу догнать...
> сейчас ошибка
> Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: user andrey.gizbrekht@ema.ru:
> Couldn't drop privileges: User is missing UID (see mail_uid setting)
> Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: Internal error occurred. Refer
> to server log for more information.
> ls /var/ -lh
> drwxrwsrwx  3 mail mail  4.0K Aug  5 06:35 mail

$ ls -lR /var/mail/


"dovecot+postfix+sql = не могу осилить"
Отправлено LSTemp , 07-Авг-12 22:07 
>> что то с правами я не могу догнать...
>> сейчас ошибка
>> Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: user andrey.gizbrekht@ema.ru:
>> Couldn't drop privileges: User is missing UID (see mail_uid setting)
>> Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: Internal error occurred. Refer
>> to server log for more information.
>> ls /var/ -lh
>> drwxrwsrwx  3 mail mail  4.0K Aug  5 06:35 mail
> $ ls -lR /var/mail/

а причем здесь права на доступ к ФС?

ему в логах пишет, что не может сменить эффективные права пользователя, поскольку UID этого пользователя не найден.



"dovecot+postfix+sql = не могу осилить"
Отправлено snooooop , 08-Авг-12 11:07 
>[оверквотинг удален]
>>> Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: user andrey.gizbrekht@ema.ru:
>>> Couldn't drop privileges: User is missing UID (see mail_uid setting)
>>> Aug 06 09:31:57 imap(andrey.gizbrekht@ema.ru): Error: Internal error occurred. Refer
>>> to server log for more information.
>>> ls /var/ -lh
>>> drwxrwsrwx  3 mail mail  4.0K Aug  5 06:35 mail
>> $ ls -lR /var/mail/
> а причем здесь права на доступ к ФС?
> ему в логах пишет, что не может сменить эффективные права пользователя, поскольку
> UID этого пользователя не найден.

ну как же, господа!
вот строка
password_query = SELECT username as user, password, 150 as uid, 8 as gid  FROM mailbox WHERE username = '%u'

и вот
id vmail
uid=150(vmail) gid=8(mail) groups=8(mail)


"dovecot+postfix+sql = не могу осилить"
Отправлено snooooop , 09-Авг-12 09:09 
>[оверквотинг удален]
>> а причем здесь права на доступ к ФС?
>> ему в логах пишет, что не может сменить эффективные права пользователя, поскольку
>> UID этого пользователя не найден.
> ну как же, господа!
> вот строка
> password_query = SELECT username as user, password, 150 as uid, 8 as
> gid  FROM mailbox WHERE username = '%u'
> и вот
> id vmail
> uid=150(vmail) gid=8(mail) groups=8(mail)

проблема решена
вот так всё работает
user_query = SELECT '/var/mail/%u' as home, 'mbox:~/mail:INBOX=/var/mail/%n' as mail FROM mailbox WHERE username = '%u' AND active = '1'