[Dovecot] tilde in mbox:, when used in non-system user db
    Michal Soltys 
    nozo at ziu.info
       
    Thu Mar 22 10:11:32 EET 2007
    
    
  
Originally I've thought that this is related to INBOX field,
but it turned out it happens only when you specify mbox.
Consider following passwd-file:
testms::10000:10000:imap,,,:/home/vmail/ppgk.com.pl/testms/./::userdb_mail=mbox:~/Mail:INBOX=/home/vmail/ppgk.com.pl/%u/inbox
or following line from userdb static:
args = uid=10000 gid=10000 home=/home/vmail/ppgk.com.pl/%u/./ mail=mbox:~/Mail:INBOX=/home/vmail/ppgk.com.pl/%u/inbox
In both cases, in user's directory, there will be an empty ~/Mail directory
created, in addition to Mail and inbox. No idea about how sql or ldap
would behave here, but global mail_location from dovecot.conf doesn't
suffer from this issue (~ was expanded properly in ktrace dump).
Chroot specification (/./) doesn't matter here.
If I change mbox:~/Mail:INBOX=..... to
mbox:/home/vmail/ppgk.com.pl/%u/Mail:INBOX=~/inbox
then everything will be fine - no extra '~' dir. Thus my assumption it's
not INBOX field related.
Looking at ktrace, it seems that imap process is checking for the existence
of ~/Mail, without expanding tilde. Then quite a bit later, it creates
Mail as a "side effect" of creating Trash subdirectory.
Relevant fragments:
   1853 imap     CALL  mkdir(0x8a79b100,0x1f8)
   1853 imap     NAMI  "~/Mail"
   1853 imap     RET   mkdir -1 errno 2 No such file or directory
   1853 imap     CALL  sigprocmask(0x1,0xffffffff)
   1853 imap     RET   sigprocmask 0
   1853 imap     CALL  mprotect(0x3c0ec000,0x1000,0x3)
   1853 imap     RET   mprotect 0
   1853 imap     CALL  mprotect(0x3c0ec000,0x1000,0x1)
   1853 imap     RET   mprotect 0
   1853 imap     CALL  sigprocmask(0x3,0)
   1853 imap     RET   sigprocmask -65793/0xfffefeff
   1853 imap     CALL  mkdir(0x8a79b108,0x1f8)
   1853 imap     NAMI  "~"
   1853 imap     RET   mkdir 0
   1853 imap     CALL  mkdir(0x8a79b100,0x1f8)
   1853 imap     NAMI  "~/Mail"
   1853 imap     RET   mkdir 0
and
   1853 imap     CALL  stat(0x8a79b180,0xcfbeb5c0)
   1853 imap     NAMI  "/home/vmail/ppgk.com.pl/testms/Mail/Trash"
   1853 imap     RET   stat -1 errno 2 No such file or directory
   1853 imap     CALL  stat(0x8a79b1b0,0xcfbeb600)
   1853 imap     NAMI  "/home/vmail/ppgk.com.pl/testms/Mail/Trash"
   1853 imap     RET   stat -1 errno 2 No such file or directory
   1853 imap     CALL  mkdir(0x8a79b1e0,0x1f8)
   1853 imap     NAMI  "/home/vmail/ppgk.com.pl/testms/Mail"
   1853 imap     RET   mkdir 0
   1853 imap     CALL  open(0x8a79b1b0,0xa02,0x1b0)
   1853 imap     NAMI  "/home/vmail/ppgk.com.pl/testms/Mail/Trash"
   1853 imap     RET   open 7
My configuration is prtty much the same as previously:
openbsd 3.9, i386, dovecot 1.0-rc27 (latest nightly, but the same happened in stock 1.0rc27)
dovecot.userdb:
testms::10000:10000:imap,,,:/home/vmail/ppgk.com.pl/testms/./::userdb_mail=mbox:~/Mail:INBOX=/home/vmail/ppgk.com.pl/%u/inbox
dovecot.passdb:
testms:{PLAIN}test:
base_dir: /var/dovecot/
protocols: imap imaps pop3 pop3s
ssl_listen: *
ssl_ca_file: /etc/ssl/cert_bundle.pem
ssl_cert_file: /etc/ssl/ca_ppgk/certs/fetch_crt.pem
ssl_key_file: /etc/ssl/ca_ppgk/private/fetch_key.pem
verbose_ssl: yes
login_dir: /var/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
login_greeting: Dovecot IMAP server ready.
login_greeting_capability(default): yes
login_greeting_capability(imap): yes
login_greeting_capability(pop3): no
valid_chroot_dirs: /var/mail:/home/regular:/home/vmail
verbose_proctitle: yes
first_valid_uid: 1999
first_valid_gid: 10
mail_location: mbox:~/Mail:INBOX=/var/mail/%u
mail_debug: yes
fsync_disable: yes
lock_method: fcntl
maildir_copy_with_hardlinks: yes
mbox_read_locks: fcntl
mbox_write_locks: fcntl
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
imap_client_workarounds(default): outlook-idle delay-newmail
imap_client_workarounds(imap): outlook-idle delay-newmail
imap_client_workarounds(pop3): outlook-idle
pop3_uidl_format(default):
pop3_uidl_format(imap):
pop3_uidl_format(pop3): %08Xu%08Xv
pop3_client_workarounds(default):
pop3_client_workarounds(imap):
pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh
auth default:
    mechanisms: plain login
    verbose: yes
    debug: yes
    passdb:
      driver: passwd-file
      args: /etc/dovecot.passdb
    passdb:
      driver: bsdauth
    userdb:
      driver: passwd-file
      args: /etc/dovecot.userdb
    userdb:
      driver: passwd
    socket:
      type: listen
      client:
        path: /var/spool/postfix/private/auth
        mode: 432
        user: postfix
        group: postfix
      master:
    
    
More information about the dovecot
mailing list