On F7, I get to where I have Postfix and Dovecot installed and configured,
postfix check runs fine, but when I try to start Dovecot I'm getting a
permission error. Here is the log entry:
Dec 29 21:54:06 grp-01-50-90 dovecot: Dovecot v1.0.7 starting up
Dec 29 21:54:06 grp-01-50-90 dovecot: Generating Diffie-Hellman parameters for
the first time. This may take a while..
Dec 29 21:54:06 grp-01-50-90 dovecot: auth(default):
bind(/var/run/dovecot/auth-master) failed: Permission denied
Dec 29 21:54:06 grp-01-50-90 dovecot: auth(default):
net_listen_unix(/var/run/dovecot/auth-master) failed: Permission denied
Here are the permissions on the filesystem:
# ls -ld /var/run/dovecot
drwxr-xr-x 3 root dovecot 4096 2007-12-29 22:07 /var/run/dovecot
And in the conf file there is this in the lda protocol:
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
What should I change to straighten out these permissions?
I forgot to mention that when I try to start Dovecot that I get this message:
dovecot dead but subsys locked
I'm thinking it is just a side effect of the permissions issue.
Anyway I tried setting perms to 777 on /var/run/dovecot but this didn't
help. So still needing some hints.
A clue. I can start Dovecot as 'root':
# dovecot
# ps -ef
root 14164 1 0 00:07 ? 00:00:00 dovecot
root 14165 14164 0 00:07 ? 00:00:00 dovecot-auth
root 14166 14164 0 00:07 ? 00:00:00 dovecot-auth -w
dovecot 14168 14164 0 00:07 ? 00:00:00 pop3-login
dovecot 14169 14164 0 00:07 ? 00:00:00 pop3-login
dovecot 14170 14164 0 00:07 ? 00:00:00 pop3-login
dovecot 14171 14164 0 00:07 ? 00:00:00 imap-login
dovecot 14172 14164 0 00:07 ? 00:00:00 imap-login
dovecot 14173 14164 0 00:07 ? 00:00:00 imap-login
maillog:
Dec 30 00:07:40 grp-01-50-90 dovecot: Dovecot v1.0.7 starting up
Dec 30 00:07:41 grp-01-50-90 dovecot: auth-worker(default): mysql: Connected to
127.0.0.1 (mailserver)
But if I try to start it using init.d:
# service dovecot start
dovecot dead but subsys locked
maillog:
Dec 30 00:12:49 grp-01-50-90 dovecot: Auth process died too early - shutting
down
Dec 30 00:12:49 grp-01-50-90 dovecot: auth(default):
bind(/var/run/dovecot/auth-master) failed: Permission denied
Dec 30 00:12:49 grp-01-50-90 dovecot: auth(default):
net_listen_unix(/var/run/dovecot/auth-master) failed: Permission denied
Dec 30 00:12:49 grp-01-50-90 dovecot: child 14301 (auth) returned error 89
????
Gerry
Ok, this turned out to be SELinux.
If I turn off SELinux then I can start Dovecot using init.d.
So now I tried to send a test mail using telnet:
# telnet localhost smtp
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 grp-01-50-90.localdomain ESMTP Postfix
ehlo example.com
250-grp-01-50-90.localdomain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:<steve at example.com>
250 2.1.0 Ok
rcpt to:<john at example.com>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
Hi John,
just wanted to drop you a note.
.
250 2.0.0 Ok: queued as 4F1D2D8055A
quit
221 2.0.0 Bye
Connection closed by foreign host.
And the log:
# tail -50 /var/log/maillog
Dec 30 10:45:31 grp-01-50-90 dovecot: Dovecot v1.0.7 starting up
Dec 30 10:45:31 grp-01-50-90 dovecot: auth-worker(default): mysql: Connected to
127.0.0.1 (mailserver)
Dec 30 11:03:02 grp-01-50-90 postfix/smtpd[6942]: connect from
localdomain.localhost[127.0.0.1]
Dec 30 11:04:21 grp-01-50-90 postfix/smtpd[6942]: 4F1D2D8055A:
client=localdomain.localhost[127.0.0.1]
Dec 30 11:05:06 grp-01-50-90 postfix/cleanup[6967]: 4F1D2D8055A:
message-id=<20071230160421.4F1D2D8055A at grp-01-50-90.localdomain>
Dec 30 11:05:06 grp-01-50-90 postfix/qmgr[2123]: 4F1D2D8055A: from=<steve at
example.com>, size=408, nrcpt=2 (queue active)
Dec 30 11:05:06 grp-01-50-90 pipe[6982]: fatal: pipe_command: execvp
/usr/lib/dovecot/deliver: No such file or directory
Dec 30 11:05:06 grp-01-50-90 postfix/pipe[6980]: 4F1D2D8055A: to=<john at
example.com>, relay=dovecot, delay=67, delays=67/0.19/0/0.1, dsn=4.3.0,
status=deferred (temporary failure. Command output: pipe: fatal: pipe_command:
execvp /usr/lib/dovecot/deliver: No such file or directory )
Dec 30 11:05:11 grp-01-50-90 postfix/smtp[6981]: 4F1D2D8055A: to=<jmiller at
gmail.com>, orig_to=<john at example.com>,
relay=gmail-smtp-in.l.google.com[72.14.203.27]:25, delay=71,
delays=67/0.14/0.53/3.7, dsn=2.0.0, status=sent (250 2.0.0 OK 1199030710
o33si13384597rog.14)
Dec 30 11:05:20 grp-01-50-90 postfix/smtpd[6942]: disconnect from
localdomain.localhost[127.0.0.1]
So I checked and 'deliver' is not in /usr/lib/dovecot. It is in
/usr/libexec/dovecot. So how do I fix this? Here is what is in postfix
master.cf:
dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -d
${recipient}
So why is it referencing /usr/lib/dovecot/deliver ????
Thanks,
Gerry