Hi list,

There's something I can't figure out with deliver as LDA configuration.
I'm working with Postfix and Dovecot.

I configured deliver as explained in the official doc and some directives in found in the conf file or while googling to resolve my issue :

dovecot.conf :
protocol lda {
postmaster = em...@domain.com (actually working email)
sendmail_path = /usr/sbin/sendmail
auth_socket_path = /var/run/dovecot/auth-master
}

auth default {
...
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = nobody
      }
    ...
  }
}

postfix/main.cf :
virtual_transport = dovecot

postfix/master.cf :
dovecot    unix   -       n       n       -       -       pipe
flags=DRhu user=nobody argv=/usr/local/libexec/dovecot/deliver -f ${sender} -d ${recipient}

But mail is not delivered, and produces the following log lines :
Apr 21 11:21:43 mail dovecot: deliver(em...@domain.com): Fatal: setgid(125(postfix)) failed with euid=65534(nobody), gid=65534(nobody), egid=65534(nobody): Operation not permitted Apr 21 11:21:43 mail postfix/pipe[27550]: 21BBF9247DE: to=<em...@domain.com>, relay=dovecot, delay=1179, delays=1178/0.07/0/0.07, dsn=4.3.0, status=deferred (temporary failure)

I did a "ls" in case some permissions went wrong, but everything seems ok :
c# ls -hal /var/run/dovecot [r...@mail]
total 8
drwxr-xr-x    3 root       wheel     512B   Apr 21 11:11 .
drwxr-xr-x    5 root       wheel     512B   Apr 21 11:11 ..
srw-------     1 nobody  wheel       0B    Apr 21 11:11 auth-master
srw-------     1 root       wheel       0B    Apr 21 11:11 auth-worker.27424
srwxrwxrwx  1 root       wheel       0B    Apr 21 11:11 dict-server
lrwx------ 1 root wheel 27B Apr 21 11:11 dovecot.conf -> /usr/local/etc/dovecot.conf
drwxr-x---    2 root      dovecot   512B Apr 21 11:11 login
-rw-------    1 root       wheel       6B    Apr 21 11:11 master.pid

Dovecot is using MySQL as the userdb backend, but I think auth process must pass through this socket to authenticate through dovecot against the MySQL server.
Everything works fine while using (postfix) virtual as LDA.
I think the setgid(125(postfix)) can be the problem, but the mailboxes uses this uid :
virtual_uid_maps = static:125
# ls -hal /usr/local/mailboxes/domain.com [r...@mail]
total 6
drwx------   3 postfix  postfix   512B Nov  2 15:40 .
drwx------   3 postfix  postfix   512B Nov  2 15:40 ..
drwx------  14 postfix  postfix   1.0K Apr 21 09:58 email

# cat /etc/passwd | grep 125 [r...@mail]
postfix:*:125:125:Postfix Mail System:/var/spool/postfix:/usr/sbin/nologin

Maybe the use of postfix as mail owner was a bad idea and the problem appears now that pipe(8) doesn't allow postfix as user.
If I'm right, how can I solve this issue?


--
Bastien Semene
Administrateur Réseau&  Système

Cyanide Studio - FRANCE

Reply via email to