Hi exim-users,

I am configuring an autoreply transport using the 'once' option.  Here's 
the configuration snippets:

ooo:
     driver = accept
     domains = foobar.com
     local_parts = foo : bar : quux
     require_files = /var/lib/ooo/$domain/$local_part/vacation
     transport = ooo_transport
     unseen

ooo_transport:
     driver = autoreply
     to = $sender_address
     from = $local_p...@$domain
     subject = "Re: $h_subject"
     file = /var/lib/ooo/$domain/$local_part/vacation.txt
     headers = "Content-Type: text/plain; charset=UTF-8"
     once = /var/lib/ooo/$domain/$local_part/vacation.db
     once_repeat = 2w
     mode = 660

So as you can see, I enable the OOO transport for the users with email 
addresses '[email protected]', '[email protected]', and '[email protected]'. The 
autoreply sends a vacation message from under the /var/lib/ooo 
hierarchy.  Users can administrate their subdirectory <DOMAIN>/<USER> if 
they have ssh access.  If my email address is '[email protected]', my 
'once' DB would be stored at /var/lib/ooo/foobar.com/quux/vacation.db.

We run Ubuntu's version of Exim:

   $ exim4 -bV
   Exim version 4.69 #1 built 02-Feb-2008 04:50:35
   Copyright (c) University of Cambridge 2006
   Berkeley DB: Berkeley DB 4.6.21: (September 27, 2007)
   Support for: crypteq iconv() IPv6 PAM Perl GnuTLS 
move_frozen_messages Content_Scanning Old_Demime
   Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz 
dnsdb  dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
   Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
   Routers: accept dnslookup ipliteral iplookup manualroute queryprogram 
redirect
   Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
   Fixed never_users: 0
   Size of off_t: 8
   Configuration file is /etc/exim4/exim4.conf

We run Exim as user and group mail:mail.

   exim_user = mail
   exim_group = mail

When mailing a user with the vacation system turned on, I see this in 
the logs:

2009-05-13 12:08:34 1M4CKA-0005Q9-6u <= [email protected] 
H=tiamat.lan.proporta.com [192.168.254.30] P=esmtpsa 
X=TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32 
A=fixed_plain:[email protected] S=611 
[email protected] T="test"
2009-05-13 12:08:35 1M4CKA-0005Q9-6u => [email protected] 
<[email protected]> R=maildir_test T=maildir_delivery
2009-05-13 12:08:35 1M4CKA-0005Q9-6u == [email protected] R=ooo 
T=ooo_transport defer (0): Failed to open db (v3/4) file 
/var/lib/ooo/foobar.com/quux/vacation.db when sending message from 
ooo_transport transport: Permission denied

As you can see, the attempt to read or write to 
'/var/lib/ooo/foobar.com/quux/vacation.db' failed.  However, if I 
simulate this action from the shell, using the same user as Exim, it 
succeeds.

   $ sudo su -c 'cat /var/lib/ooo/foobar.com/quux/vacation.db 
 >/dev/null' mail

   $ sudo su -c 'echo test > /var/lib/ooo/foobar.com/quux/vacation.db' mail

   $ ls -ld /var/lib/ooo/foobar.com/quux
   drwxrwxr-x 2 ooo ooo 4096 2009-05-13 12:16 /var/lib/ooo/foobar.com/quux

   $ grep ooo /etc/group
   ooo:x:1013:www-data,mail

'mail' is a member of the group 'ooo' and the directory where 
'vacation.db' should be created is group writable and owned by group 
'ooo'.  As such, 'mail' should be able to write to it, and indeed it can 
- but when Exim tries, it fails, even though Exim runs as 'mail'.  And 
it does seem to be running as mail:

   $ ps aux | grep exim | grep -v grep
   root     14683  0.0  0.0  81492  3504 ?        S    11:04   0:00 
/usr/sbin/exim4 -q
   mail     22338  0.0  0.0  83576  2648 ?        S    12:18   0:00 
/usr/sbin/exim4 -bd -q30m
   mail     22356  0.0  0.0  84144  3692 ?        S    12:18   0:00 
/usr/sbin/exim4 -bd -q30m
   root     22379  0.0  0.0  81608  2188 ?        S    12:19   0:00 
/usr/sbin/exim4 -q
   mail     27682  0.0  0.0  81496  1496 ?        Ss   May12   0:01 
/usr/sbin/exim4 -bd -q30m

Does Exim drop privileges or switch to a different user ID when writing 
this DB file?  Why is it unable to write this file?  I guess this is not 
an issue with Ubuntu's packaging of Exim, though it's difficult to tell 
in this case.

Thanks for any help,

David

-- 
## List details at http://lists.exim.org/mailman/listinfo/exim-users 
## Exim details at http://www.exim.org/
## Please use the Wiki with this list - http://wiki.exim.org/

Reply via email to