I am a new dovecot user who recently transitioned my old mailserver to a new CentOS/Postfix/Dovecot system. I am running a simple configuration with about a dozen system users and Maildir folders. The e-mail setup seems to be running fine when I use the default local-delivery-agent in Postfix. However, I am trying to use the dovecot-lda instead so I can take advantage of the sieve functionality.
I have tried to specify the dovecot-lda in two ways. First, in the /etc/postfix/main.cf file:
mailbox_command = /usr/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"
or alternatively, I leave the mailbox_command blank and specify the following in the .forward file of a test user:
| "/usr/libexec/dovecot/dovecot-lda"
Either approach gives me the same error(s). When a mail message is sent to the test user USER1, the following errors appear in the dovecot-lda error file:
Nov 04 08:47:29 lda(user1): Error: chdir(/home/user1/) failed: Permission denied (euid=524(user1) egid=524(user1) stat() failed: No such file or directory, euid is not dir owner) Nov 04 08:47:29 lda(user1): Error: chdir(/home/user1) failed: Permission denied Nov 04 08:47:29 lda(user1): Error: user user1: Initialization failed: Namespace 'INBOX.': stat(/home/user1/Maildir) failed: Permission denied (euid=524(user1) egid=524(user1) stat() failed: No such file or directory, euid is not dir owner) Nov 04 08:47:29 lda(user1): Fatal: Invalid user settings. Refer to server log for more information.
Nov 04 08:47:29 lda(user1): Error: chdir(/home/user1/) failed: Permission denied (euid=524(user1) egid=524(user1) stat() failed: No such file or directory, euid is not dir owner) Nov 04 08:47:29 lda(user1): Error: chdir(/home/user1) failed: Permission denied Nov 04 08:47:29 lda(user1): Error: user user1: Initialization failed: Namespace 'INBOX.': stat(/home/user1/Maildir) failed: Permission denied (euid=524(user1) egid=524(user1) stat() failed: No such file or directory, euid is not dir owner) Nov 04 08:47:29 lda(user1): Fatal: Invalid user settings. Refer to server log for more information.
At first, I interpreted this to mean the file permissions were not set correctly on the home directory or the Maildir folder. However, I have opened these up to full rwx access for everyone and I still get the same errors. Alternatively, perhaps this is related somehow to the dovecot-lda authentication process via the password or user databases, but I can't make any sense of the documentation.
Can anyone suggest what might be wrong or how to better diagnose?
For reference, I am running dovecot version 2.0.9.
The dovecot-lda process also outputs the following messages (not errors) when a test message is sent to the USER1 account:
Nov 04 08:47:29 lda: Debug: Loading modules from directory: /usr/lib64/dovecot Nov 04 08:47:29 lda: Debug: Module loaded: /usr/lib64/dovecot/lib90_sieve_plugin.so
Nov 04 08:47:29 lda(user1): Debug: Effective uid=524, gid=524, home=/home/user1 Nov 04 08:47:29 lda(user1): Debug: Namespace : type=private, prefix=INBOX., sep=., inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir Nov 04 08:47:29 lda(user1): Debug: maildir++: root=/home/user1/Maildir, index=, control=, inbox=/home/user1/Maildir Nov 04 08:47:29 lda: Debug: Loading modules from directory: /usr/lib64/dovecot Nov 04 08:47:29 lda: Debug: Module loaded: /usr/lib64/dovecot/lib90_sieve_plugin.so
Nov 04 08:47:29 lda(user1): Debug: Effective uid=524, gid=524, home=/home/user1 Nov 04 08:47:29 lda(user1): Debug: Namespace : type=private, prefix=INBOX., sep=., inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/Maildir Nov 04 08:47:29 lda(user1): Debug: maildir++: root=/home/user1/Maildir, index=, control=, inbox=/home/user1/Maildir
The output of dovecot -n is:
# 2.0.9: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-431.29.2.el6.x86_64 x86_64 CentOS release 6.5 (Final) auth_debug = yes auth_debug_passwords = yes auth_mechanisms = plain login disable_plaintext_auth = no login_trusted_networks = 71.xx.xx.xx 71.xx.xx.xy 71.xx.xx.xz 71.xx.xx.yx mail_debug = yes mail_location = maildir:~/Maildir managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date mbox_write_locks = fcntl namespace {
inbox = yes
location =
prefix = INBOX.
separator = .
}
passdb {
driver = pam
}
plugin {
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
sieve_global_dir = home/sieve
sieve_max_script_size = 1M
}
protocols = imap lmtp sieve
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
ssl_cert =
ssl_key =
userdb {
driver = passwd
}
protocol lda {
info_log_path = /var/log/dovecot-lda.log
log_path = /var/log/dovecot-lda-errors.log
mail_plugins = sieve
postmaster_address = postmaster@xxxxxxx.com }