Non-standard socket locations w/ Dovecot + AWS Linux
Antonio Leding
tech at leding.net
Sat Jul 18 03:49:44 EEST 2020
# === The post relates to Dovecot v2.2 running on AWS Linux v1 === #
Hello all…
The Dovecot sockets on this server are installed in two different locations one of which is different from what I have on my other Dovecot installations which run on Centos-7. Here are the sockets paths:
— all sockets EXCEPT "auth-master” —> "/usr/local/var/run/dovecot” <<<<< this appears to be the default for this server
— "auth-master” —> "/var/run/dovecot” <<<<< without this statement, Dovecot authentication always failed. The config stanza for this is shown below:
service auth {
unix_listener auth-userdb {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
}
}
============
The above has been working great for several years but the time eventually came where I needed to upgrade. This of course meant I had to move lots of maildata between the servers. Unfortunately, the “auth-userdb" config mentioned above prevented “dsync" from working properly. This is the error I received when trying “dsync”:
Error: userdb lookup: connect(/usr/local/var/run/dovecot/auth-userdb) failed: No such file or directory
This error led me to the eventual fix which was adding the following to the “dovecot.conf” file:
auth_socket_path = /var/run/dovecot/auth-master
============
So, to my questions:
(1) Why would the socket path on this AWS installation be different from what I see on my Centos-based Dovecot servers and also what I’ve read in several Dovecot mailer discussions?
(2) Can the default socket path be set at compile time? If so, then I'm thinking maybe the AWS folks — for whatever reason — decided to install all sockets (except ”auth-master”) in the “/usr/local/var/run/dovecot” directory. Are there any benefits or reason to do this?
(3) Is there any requirement that the “auth-master” socket be located in the “/var/run/dovecot” directory? Also, there is nothing else in that directory — just the “auth-master” socket file — that’s it.
(4) Why is “dsync" looking for "auth-userdb" in the “/usr/local/var/run/dovecot” directory despite the “auth" stanza stating it is located elsewhere in "/var/run/dovecot”?
(5) And last, why do I need to add the “auth_socket_path” statement to get “dsync” working even though the socket path is stated in the “auth" stanza?
Thanks in advance for your time on this. I know this is mostly to help educate me on what is going on so I really appreciate your feedback…
More information about the dovecot
mailing list