checkcdb-0.53 + single pop user setup

[email protected] Mon, 2 Dec 2002 12:39:17 +0200
Newsgroups gmane.comp.djb.checkpassword,gmane.comp.djb.cdb
Message-ID <20021202103917.GG557@samadhi>
Hi there

I'm having trouble getting the following setup to work.  In a
nutshell, it works fine under uid=root and gid=root, but not as user
qmailv, as executed via /service/qmail-pop3d/run. ie. the usual
telnet 0 110 test works when run under root, and root successfully
executes:

root@localhost:~# perl -e 'printf \
"%s\0%s\0Y123456\0","postmaster%test.localdomain","gibberish"' | \
/usr/bin/checkcdb `which id` 3<&0

OUTPUT:
uid=2000(qmailv) gid=2000(qmailv) groups=2000(qmailv)

OK, it's obviously a permission issue, but I've been unable to
resolve it.  Any pointers/suggestions would be greatly appreciated.
N.B. postmaster%test.localdomain receives mail; it's just running
qmail-popup etc under qmailv which isn't working.
I've included as much detail below as possible.

Thanks.
Dale

SETUP:

slackware 8.1
linux kernel 2.4.18
qmail-1.03
daemontools-0.76
ucspi-tcp-0.88
cdb-0.75
checkcdb-0.53

===== USER qmailv =====

root@localhost:~# /usr/bin/id <&0 qmailv
uid=2000(qmailv) gid=2000(qmailv) groups=2000(qmailv)

===== FILE /service/qmail-pop3d/run =====

#!/bin/sh

QVUID=`id -u qmailv`
QVGID=`id -g qmailv`
MAXPOP3=`head -1 /var/qmail/control/concurrencypop3d`

exec softlimit -m 2000000 tcpserver -v -R -H -l 0 -x \
/etc/tcprules/pop3.cdb -c "$MAXPOP3" -u "$QVUID" -g "$QVGID" 0 \
110 /var/qmail/bin/qmail-popup localhost /usr/bin/checkcdb \
/var/qmail/bin/qmail-pop3d inbox 2>&1

===== FILE /var/qmail/control/virtualdomains =====

test.localdomain:test.localdomain

===== FILE /var/qmail/control/rcpthosts =====

test.localdomain:test.localdomain

===== FILE /var/qmail/users/assign =====

=test.localdomain-postmaster:qmailv:2000:2000: \
/var/qmail/vmaildir/test.localdomain/postmaster:::
.

===== FILE /var/qmail/users/poppasswd =====

postmaster%test.localdomain:sBsbe9k2WbpAg:qmailv: \
/var/qmail/vmaildir/test.localdomain/postmaster

===== PERMISSIONS =====

root@localhost:/var/qmail/users# ls -l
-rw-r--r--    1 root     root      101 Dec  2 10:41 assign
-rw-r--r--    1 root     root     2193 Dec  2 10:41 cdb
-rw-rw----    1 root     qmailv     99 Dec  2 10:42 poppaswd
-rw-rw----    1 root     qmailv   2170 Dec  2 10:41 poppaswd.cdb

root@localhost:/var/qmail# ls -l vmaildir
drwxrwx---    3 qmailv   qmailv   4096 Dec  2 10:10 vmaildir

root@localhost:/var/qmail/vmaildir# ls -l
drwxrwx---    3 qmailv   qmailv   4096 Dec  1 17:25 test.localdomain

root@localhost:/var/qmail/vmaildir/test.localdomain# ls -l
drwxrwx---    3 qmailv   qmailv       4096 Dec  2 10:43 postmaster

root@localhost:/var/qmail/vmaildir/test.localdomain/postmaster# ls -l
drwx------    5 qmailv   qmailv       4096 Nov 22 16:37 inbox

root@localhost:/usr/bin# ls -l checkcdb
-rwxr-x---    1 root     qmailv  11484 Dec  2 10:46 checkcdb

root@localhost:/usr/bin# ls -l cdb*
-rwxr-xr-x    1 root     bin     10960 Nov 27 20:53 cdbdump
-rwxr-xr-x    1 root     bin     11020 Nov 27 20:53 cdbget
-rwxr-xr-x    1 root     bin     13300 Nov 27 20:53 cdbmake
-rwxr-xr-x    1 root     bin       192 Nov 27 20:53 cdbmake-12
-rwxr-xr-x    1 root     bin       546 Nov 27 20:53 cdbmake-sv
-rwxr-xr-x    1 root     bin     12332 Nov 27 20:53 cdbstats
-rwxr-xr-x    1 root     bin     12108 Nov 27 20:53 cdbtest