web1 - gid и uid = 1000 - надо проставить эти GID и UID
vmail - gid и uid = 1002 - под этим пользователем у меня работает dovecot
Полагаю нужно как-то пускать dovecot не от пользователя vmail а от получаемого из БД или еще откуда-то.
Пока сделал так для теста, через static:
postfix main.cf.
Код: Выделить всё
virtual_uid_maps=static:1000
virtual_gid_maps=static:1000
Код: Выделить всё
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}
Код: Выделить всё
userdb static {
args = uid=1000 gid=1000 home=/var/vmail/%d/%n allow_all_users=yes
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0666
user = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
Приведены части конфигов, т.к. затык именно тут
лог говорит ошибку
Код: Выделить всё
2012-04-03 03:12:32 deliver(test@example.com): Fatal: setgid(1000(web1)) failed with euid=1002(vmail), gid=1002(vmail), egid=1002(vmail): Operation not permitted (This binary should probably be called with process group set to 1000(web1) instead of 1002(vmail))
Как заставить dovecot выставлять нужные UID и GID на директории пользователей? Может права где-то я забыл выставить?