Package: courier-imap
Version: 5.0.13+1.0.16-3+b5 amd64
Hello,
I wanted to upgrade my email server, so I decided to install Bookworm
(current debian testing) on a new machine. I wish to use virtual users.
postfix, postgresql auth, virtual users, courier imapd.
ii courier-authdaemon 0.71.4-1+b1 amd64 Courier
authentication daemon
ii courier-authlib 0.71.4-1+b1 amd64 Courier
authentication library
ii courier-authlib-postgresql 0.71.4-1+b1 amd64 PostgreSQL
support for the Courier authentication library
ii courier-authlib-userdb 0.71.4-1+b1 amd64 userdb
support for the Courier authentication library
ii courier-base 1.0.16-3+b5 amd64 Courier mail
server - base system
ii courier-imap 5.0.13+1.0.16-3+b5 amd64
Courier mail server - IMAP server
ii libcourier-unicode4:amd64 2.1.2-2+b1 amd64 Courier
Unicode library (shared runtime library)
ii gamin 0.1.10-6 amd64 File and
directory monitoring system
ii libgamin0 0.1.10-6 amd64 Client library
for the gamin file and directory monitoring system
It doesn't work.
I got a message from thunderbird:
(set debug, cut&paste from imaplog.dat
WRITE: * OK [ALERT] Filesystem notification initialization error --
contact your mail administrator (check for configuration errors with the
FAM/Gamin library)
This bug has a long history in debian bugtrack, suggest to install fam,
but there is no fam in debian testing.
/var/log/mail.log:
imapd: Failed to connect to socket /tmp/fam--
I started to investigate about this socket name, mainly the two dash on
it's end.
I downloaded and extracted gamin source, and found this in
server/gam_channel.c:
#ifdef HAVE_ABSTRACT_SOCKETS
ret = g_strconcat("/tmp/fam-", user, "-", gam_client_id, NULL);
#else
So it needs the username. I've gave it a try and added a regular user
along the virtual one (same username, same uid and gid) and it staarted
to work.
Then I removed the regular user and readded with some random character
appended, same uid, same gid, and it works also. I've checked with lsof
that the gam_server libexeced process uses the username from the
/etc/passwd.
lsof:
gam_serve 10851 usernameiiii 8u unix 0x000000009286ce 0t0
90092
@/tmp/fam-usernameiiii-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
type=STREAM (CONNECTED)
gam_serve 10851 usernameiiii 9u unix 0x000000007a8182 0t0
90095
@/tmp/fam-usernameiiii-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
type=STREAM (CONNECTED)
If I delete the regular user again, then:
gam_serve 10966 20042 5u unix 0x000000009422bc0f 0t0
95756
@/tmp/fam-somebody-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
type=STREAM (LISTEN)
the gam_serve opens the socket as somebody, the imapd checks as a null
string.
I don't know, if this is a problem, or my fault.
Thank you for any help.
Robert