[Dovecot] File Permissions and delivery
Simon Brereton
simon.brereton at buongiorno.com
Sat Aug 27 04:00:06 EEST 2011
On 26 August 2011 19:35, Patrick Domack <patrickdk at patrickdk.com> wrote:
>
> My guess is your delivering email with postfix to the inbox, instead of using dovecot-lda. And something odd is going on with that postfix to get odd permissions like that.
>
> You probably needed to edit the postfix virtual deliever transport, or maybe you just forget to active the dovecot-lda (deliever) transport.
That's why I included the portion from my master.cf
The portion of my master.cf
81 # SPB - Attempt to deliver with Dovecot LDA
82 dovecot unix - n n - - pipe
83 flags=DRhu user=mailsystem argv=/usr/lib/dovecot/deliver -f
${sender} -d ${user}@${nexthop}
The numbers are just line numbers from vim. The entry reads like:
# SPB - Attempt to deliver with Dovecot LDA
dovecot unix - n n - - pipe
flags=DRhu user=mailsystem argv=/usr/lib/dovecot/deliver -f
${sender} -d ${user}@${nexthop}
malsystem is the user and /usr/lib/dovecot/deliver exists.
Simon
>
> Quoting Simon Brereton <simon.brereton>:
>
>> Hi
>>
>> I'm very new to Dovecot (been using Courier for 5 years), but I've been persuaded of the merits of Dovecot and since the server needs upgrading that seems like the perfect time/excuse.
>>
>> On a test server, I set up postfix and installed Dovecot (running 32-bit Debian Squeeze, installed from apt-get). I mirrored the mail store (Maildirs, for historical reasons located under /var/spool/mail/virtual/domain.com/user). Then I ran the courier migration perl script and everything was fine and dandy.
>>
>> However, when I can to do the production migration, things weren't as smooth. The new server is 64-bit (not that I think it makes a difference, but if you're going to help me you should have all the information :)
>>
>> Again, I installed Postfix and Dovecot
>> Took down the old server
>> Mirrored the Maildirs
>> Ran the migration script
>> Restarted everything
>>
>> At this point everything looked like it was ok. Mail was being received and delivered to the Maildirs and the IMAP login was fine. However, I noticed errors in the logs when retreiving mail with the MUA along the lines of:
>>
>> Aug 26 16:59:48 mail dovecot: IMAP(simon at lydiard.net): open(/var/spool/mail/virtual/domain.net/simon/cur/1314328966.V801I166601bM756462.mail.net,S=2461:2,) failed: Permission denied (euid=999(mailsystem) egid=115(mailsystem) missing +r perm: /var/spool/mail/virtual/domain.net/simon/cur/1314328966.V801I166601bM756462.mail.net,S=2461:2,)
>>
>> After messing around with the chown and chmod (even though these were exactly the same as the test server) I finally discovered the issue.
>>
>> mail:~# ls /var/spool/mail/virtual/domain.net/simon/new/
>> -rwxrwx--- 1 postfix mailsystem 2.5K Aug 26 03:33 1314326000.V801I1666018M803015.mail.net,S=2461:2,
>> -rwxrwx--- 1 postfix mailsystem 2.5K Aug 26 03:36 1314326209.V801I1666019M447273.mail.net,S=2460:2,
>> -rw-rw---- 1 postfix mailsystem 2.5K Aug 26 04:00 1314327630.V801I166601aM308173.mail.net,S=2477:2,
>> -rw------- 1 postfix mailsystem 2.5K Aug 26 04:22 1314328966.V801I166601bM756462.mail.net,S=2461:2,
>> -rw------- 1 postfix mailsystem 1.1K Aug 26 16:28 1314372534.V801I166601cM615258.mail.net,S=1097:2,
>> -rw------- 1 postfix mailsystem 1.1K Aug 26 16:31 1314372685.V801I166601dM264242.mail.net,S=1097:2,
>>
>> Mails are being delivered with 0600 permissions and not 0660 (the mails from courier seem to have all been 0770 as you can see). If I manually change the permission (to 0660) then I can see the mail in the MUA.
>>
>> After thinking for a while it occurred to me that this is covered in the LDA section. But making changes to the config file (either permissions or UID/GID) doesn't seem to make a difference. (Yes, I did restart postfix and dovecot after the changes).
>>
>> Anyway, here is my dovecot -n:
>>
>> mail:~# dovecot -n
>> # 1.2.15: /etc/dovecot/dovecot.conf
>> # OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.2 ext3
>> log_timestamp: %Y-%m-%d %H:%M:%S
>> protocols: imap imaps pop3 pop3s
>> ssl_ca_file: /etc/ssl/keys/ca.crt
>> ssl_cert_file: /etc/ssl/keys/mail.net.crt
>> ssl_key_file: /etc/ssl/private/mail.net.key
>> disable_plaintext_auth: no
>> login_dir: /var/run/dovecot/login
>> login_executable(default): /usr/lib/dovecot/imap-login
>> login_executable(imap): /usr/lib/dovecot/imap-login
>> login_executable(pop3): /usr/lib/dovecot/pop3-login
>> mail_privileged_group: mailsystem
>> mail_location: maildir:/var/spool/mail/virtual/%d/%n
>> maildir_very_dirty_syncs: yes
>> mbox_write_locks: fcntl dotlock
>> mail_executable(default): /usr/lib/dovecot/imap
>> mail_executable(imap): /usr/lib/dovecot/imap
>> mail_executable(pop3): /usr/lib/dovecot/pop3
>> mail_plugins(default): quota imap_quota
>> mail_plugins(imap): quota imap_quota
>> mail_plugins(pop3): quota
>> mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
>> mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
>> mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
>> imap_client_workarounds(default): outlook-idle delay-newmail
>> imap_client_workarounds(imap): outlook-idle delay-newmail
>> imap_client_workarounds(pop3):
>> pop3_client_workarounds(default):
>> pop3_client_workarounds(imap):
>> pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh
>> lda:
>> postmaster_address: postmaster at net
>> mail_plugins: quota
>> log_path:
>> info_log_path:
>> deliver_log_format: msgid=%m: %f: %$
>> auth default:
>> mechanisms: plain login
>> user: mailsystem
>> verbose: yes
>> passdb:
>> driver: sql
>> args: /etc/dovecot/dovecot-sql.conf
>> userdb:
>> driver: prefetch
>> userdb:
>> driver: static
>> args: uid=999 gid=115 home=/var/spool/mail/virtual/%d/%n allow_all_users=yes
>> socket:
>> type: listen
>> client:
>> path: /var/spool/postfix/private/auth
>> mode: 432
>> user: postfix
>> group: mailsystem
>> master:
>> path: /var/run/dovecot/auth-master
>> mode: 432
>> user: mailsystem
>> group: mailsystem
>> plugin:
>> quota: maildir
>>
>> As you can see, I tried to go 0660 in both client and master.
>>
>> The portion of my master.cf
>> 81 # SPB - Attempt to deliver with Dovecot LDA
>> 82 dovecot unix - n n - - pipe
>> 83 flags=DRhu user=mailsystem argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
>>
>> Is there anything else I should include?
>>
>> I'm pretty sure it's an error on my part. I'm just not clued up enough to know where.
>>
>> My second problem is that I thought I had things back to where they were before I messed with chown and chmod, but now I get this in the logs
>>
>> dovecot: dovecot: Fatal: chdir(/var/spool/mail/virtual/domain.net/simon//) failed: Permission denied (euid=999(mailsystem) egid=115(mailsystem) missing +x perm: /var/spool/mail/virtual)
>>
>> But the ls on that is exactly the same as on the test server:
>> ls /var/spool/mail/virtual/
>> total 44K
>> drwxrwS--- 11 postfix mailsystem 4.0K Aug 25 23:07 ./
>> drwxrwsr-x 5 amavis mailsystem 4.0K Oct 19 2009 ../
>> drwxrws--- 5 mailsystem mailsystem 4.0K Aug 26 02:33 domain.net/
>>
>> So, now I'm stumped. I hope someone can spot the simple thing I've missed!
>>
>> Thanks.
>>
>>
>> Simon
>
>
>
More information about the dovecot
mailing list