On Mon, 6 Sep 2004, Tom Metro wrote:
Jacek Osiecki wrote:
I have installed latest dovecot release and ran through the config file. Some options seemed unclear to me, but generally I think it is OK.
The problem is, that MySQL authentication does not work. [...] auth_userdb = mysql /etc/dovecot/dovecot-mysql.conf auth_passdb = mysql /etc/dovecot/dovecot-mysql.conf
In addition to what Timo suggested, I'd recommend first trying to get logins to work using more traditional user and password databases (i.e. /etc/passwd).
I have straced the dovecot daemon, and it seems that it tries to authenticate with use of pam. In following lines is the effect of my "investigation". Generally, for me it seems that there is something wrong with my mysql settings in main dovecot configuration file rather than in general issues. Maybe someone with working dovecot+mysql configuration could send me his main configuration file? I would be grateful...
I have traced three processes:
- 32580, seems to be the main imap login process,
- 32577, seems to be authenticating process
- 32589, sub-process that uses probably PAM to authenticate:
First - strace of main process (32580): it reads the LOGIN data from input (line 1), sends it to authenticating process (line 2), receives answer (line 3) which tells him to say "authentication failed" (line 4).
1 read(6, "1 login joshua@xxxxx yyyy"..., 512) = 37 2 write(8, "\0joshua@xxxxx\0yyyy", 28) = 28 3 read(8, "\1\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4068) = 20 4 write(6, "1 NO Authentication failed.", 27) = 27
Then main authenticating process (32577): it reads the LOGIN data from the main process (line 1), forks into process 32589 (line 2) and then sends the "login failed" to main process (line 3).
1 read(7, "\2\0\0\0\1\0\0\0\34\0\0\0\0joshua@xxxxx\0yy"..., 4076) = 40 2 fork() = 32589 3 write(7, "\1\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
Finally, here is the trace of the forked process. It seems that it deals only with PAM - and even does not try to use mysql...
close(10) = 0 stat("/etc/pam.d", {st_mode=S_IFDIR|0755, st_size=378, ...}) = 0 open("/etc/pam.d/dovecot", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/pam.d/other", O_RDONLY) = 10 fstat(10, {st_mode=S_IFREG|0644, st_size=210, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x128000 read(10, "#%PAM-1.0\nauth required "..., 4096) = 210 open("/lib/security/pam_deny.so", O_RDONLY) = 12 read(12, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\6\0"..., 1024) = 1024 fstat(12, {st_mode=S_IFREG|0755, st_size=3560, ...}) = 0 old_mmap(NULL, 6560, PROT_READ|PROT_EXEC, MAP_PRIVATE, 12, 0) = 0x3e6000 mprotect(0x3e7000, 2464, PROT_NONE) = 0 old_mmap(0x3e7000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 12, 0) = 0x3e7000 close(12) = 0 read(10, "", 4096) = 0 close(10) = 0 munmap(0x128000, 4096) = 0 time(NULL) = 1094538610 munmap(0x3e6000, 6560) = 0 write(11, "\0\0\0\0", 4) = 4 _exit(0) = ?
Best regards,
Jacek Osiecki joshua@ceti.pl Poland