In my original email I noted that the directory /usr/local/etc was in the dovecot.conf variable valid_chroot_dirs :
valid_chroot_dirs = /usr/local/etc:/etc:/var/mail:/lib
Is that not sufficient? Under the /var/run/dovecot directory the directories ./usr/local/etc exist with dovecot-pgsql.conf in.
Is there some big RTFM item I'm missing here?
-Matthew
P.S. - email address changed due to problems with upstream, will jump back as soon as this is fixed so I can finish my migration :)
On Sat, 2005-03-05 at 09:06 +0100, Gunter Ohrner wrote:
Am Samstag, 5. März 2005 05:27 schrieb Matthew J. Harmon:
I have dovecot (+ssl) configured on debian in a chroot with ^^^^^^
I've never run dovecot chrooted, but...
The file exists, and permissions look good: root at alfa:~# ls -la /usr/local/etc/dovecot-pgsql.conf
...let me guess, you're not in the chroot here?
So, how should dovecot be able to find this file while it runs chrooted? You need to put all needed files into the chroot.
Yep, that's how it's with 0.99.x. With 1.0-tests however Dovecot opens the dovecot-pgsql.conf before chrooting.
Plagued with an error I can't get past: ==> dovecot_info.log <== dovecot: Mar 04 22:09:06 Info: Dovecot starting up ==> dovecot.log <== dovecot-auth: Mar 04 22:09:07 Fatal: Can't open configuration file /usr/local/etc/dovecot-pgsql.conf: No such file or directory dovecot: Mar 04 22:09:07 Error: child 18211 (auth) returned error 89 dovecot: Mar 04 22:09:07 Error: Auth process died too early - shutting down pop3-login: Mar 04 22:09:07 Fatal: fd_send(-1) failed: Broken pipe
I have dovecot (+ssl) configured on debian in a chroot with postfix+pgsql+sasl.
The file exists, and permissions look good: root at alfa:~# ls -la /usr/local/etc/dovecot-pgsql.conf lrwxrwxrwx 1 root dovecot 31 2005-03-04 20:35 /usr/local/etc/dovecot-pgsql.conf -> /etc/dovecot/dovecot-pgsql.conf root at alfa:~# ls -la /etc/dovecot/dovecot-pgsql.conf -rw-r--r-- 1 root dovecot 2875 2005-03-01 23:38 /etc/dovecot/dovecot-pgsql.conf
But... dovecot-auth can't see it? That's weird... root at alfa:~# strace -vffF /etc/init.d/dovecot start 1>& ~/dovecot.strace root at alfa:~# less ~/dovecot.strace [...] :/chroot [...] :/dovecot-pgsql.conf
[pid 18211] open("/var/log/dovecot_info.log", O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE, 0666 <u nfinished ...> [pid 18213] fcntl64(5, F_SETFD, FD_CLOEXEC <unfinished ...> [pid 18211] <... open resumed> ) = 5 [pid 18213] <... fcntl64 resumed> ) = 0 [pid 18211] fstat64(5, <unfinished ...> [pid 18209] <... fcntl64 resumed> ) = 0 [pid 18211] <... fstat64 resumed> {st_dev=makedev(22, 1), st_ino=917830, st_mode=S_IFREG|060 0, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=16, st_size=4264, st_atime=200 5/03/04-22:09:07, st_mtime=2005/03/04-22:09:06, st_ctime=2005/03/04-22:09:06}) = 0 [pid 18211] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0 x40019000 [pid 18211] fstat64(5, {st_dev=makedev(22, 1), st_ino=917830, st_mode=S_IFREG|0600, st_nlink =1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=16, st_size=4264, st_atime=2005/03/04-22: 09:07, st_mtime=2005/03/04-22:09:06, st_ctime=2005/03/04-22:09:06}) = 0 [pid 18211] _llseek(5, 4264, [4264], SEEK_SET) = 0 [pid 18211] fcntl64(5, F_GETFD) = 0 [pid 18211] fcntl64(5, F_SETFD, FD_CLOEXEC) = 0 [pid 18211] open("/dev/urandom", O_RDONLY|O_LARGEFILE) = 6 [pid 18211] fcntl64(6, F_GETFD) = 0 [pid 18211] fcntl64(6, F_SETFD, FD_CLOEXEC) = 0 [pid 18211] open("/etc/localtime", O_RDONLY) = 7 [pid 18211] fstat64(7, {st_dev=makedev(22, 1), st_ino=6193169, st_mode=S_IFREG|0644, st_nlin k=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=1279, st_atime=2005/03/04-22: 09:07, st_mtime=2004/12/26-20:19:40, st_ctime=2005/02/09-03:35:52}) = 0 [pid 18211] old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0 x4001a000 [pid 18211] read(7, "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\5\0"..., 4096) = 127 9 [pid 18211] close(7) = 0 [pid 18211] munmap(0x4001a000, 4096) = 0
** chrooting dovecot-auth [pid 18211] chroot("/var/run/dovecot-auth") = 0 [pid 18211] chdir("/") = 0 [pid 18211] gettimeofday({1109995747, 798541}, {360, 0}) = 0 [pid 18211] rt_sigaction(SIGHUP, {0x404a07a0, [], SA_RESTORER, 0x4027e678}, NULL, 8) = 0 [pid 18211] rt_sigaction(SIGINT, {0x404a07a0, [INT], SA_RESTORER|SA_RESTART, 0x4027e678}, {SIG_DFL}, 8) = 0 [pid 18211] rt_sigaction(SIGTERM, {0x404a07a0, [TERM], SA_RESTORER|SA_RESTART, 0x4027e678}, {SIG_DFL}, 8) = 0 [pid 18211] rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_IGN}, 8) = 0
*** lets look at dovecot-pgsql.conf! [pid 18211] open("/usr/local/etc/dovecot-pgsql.conf", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) [pid 18211] time(NULL) = 1109995747 [pid 18211] write(4, "dovecot-auth: Mar 04 22:09:07 Fa"..., 128) = 128 [pid 18211] munmap(0x40018000, 4096) = 0 [pid 18211] exit_group(89) = ? Process 18211 detached
Excerpts from /etc/dovecot/dovecot.conf: auth_userdb = pgsql /usr/local/etc/dovecot-pgsql.conf auth_passdb = pgsql /usr/local/etc/dovecot-pgsql.conf login_chroot = yes valid_chroot_dirs = /usr/local/etc:/etc:/var/mail:/lib auth_chroot = /var/run/dovecot-auth
Any recommended next steps?
Thanks a million!
-Matthew