1 (edited by mocmien 2019-03-04 14:37:12)

Topic: dovet master user cannot view user mailbox

Hi Zhang Huangbin,
=============================
I've setuped iredmail 0.9.2
Server run CentOS 7
ldap backend
webmail is roundcube mail.
==============================
I've created dovecot master user with master username = mailadmin@domain.com ( non-exit domain ).
Now i can login with master user, but i cannot see user mailbox.
Below is error log of dovecot.

auth: Info: passdb(mailadmin@domain.com,127.0.0.1,master,<0YWmMS2DwAB/AAAB>): Master user logging in as test@gft.com
Mar 03 16:23:33 imap-login: Info: Login: user=<test@gft.com>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=5166, secured, session=<0YWmMS2DwAB/AAAB>
Mar 03 16:23:33 imap(test@gft.com): Error: Failed to autocreate mailbox INBOX: Permission denied
Mar 03 16:23:33 imap(test@gft.com): Error: Failed to autocreate mailbox INBOX: Permission denied
Mar 03 16:23:33 imap(test@gft.com): Info: Disconnected: Logged out in=370 out=1799

This is my dovecot config

# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-123.13.2.el7.x86_64 x86_64 CentOS Linux release 7.0.1406 (Core)
auth_master_user_separator = *
auth_mechanisms = PLAIN LOGIN
auth_verbose = yes
dict {
  acl = mysql:/etc/dovecot/dovecot-share-folder.conf
  quotadict = mysql:/etc/dovecot/dovecot-used-quota.conf
}
disable_plaintext_auth = no
first_valid_uid = 2000
last_valid_uid = 2000
listen = * [::]
log_path = /var/log/dovecot.log
mail_debug = yes
mail_gid = 2000
mail_location = maildir:/%Lh/Maildir/:INDEX=/%Lh/Maildir/
mail_plugins = quota mailbox_alias acl
mail_uid = 2000
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave
namespace {
  inbox = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    auto = no
    special_use = \Sent
  }
  mailbox Spam {
    auto = no
    special_use = \Junk
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
  separator = /
  type = private
}
namespace {
  list = children
  location = maildir:/%%Lh/Maildir/:INDEX=/%%Lh/Maildir/Shared/%%u
  prefix = Shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
passdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
passdb {
  args = /etc/dovecot/dovecot-master-users
  driver = passwd-file
  master = yes
}
plugin {
  acl = vfile
  acl_shared_dict = proxy::acl
  auth_socket_path = /var/run/dovecot/auth-master
  mailbox_alias_new = Sent Messages
  mailbox_alias_new2 = Sent Items
  mailbox_alias_old = Sent
  mailbox_alias_old2 = Sent
  quota = dict:user::proxy::quotadict
  quota_rule = *:storage=1G
  quota_warning = storage=85%% quota-warning 85 %u
  quota_warning2 = storage=90%% quota-warning 90 %u
  quota_warning3 = storage=95%% quota-warning 95 %u
  sieve = /%Lh/sieve/dovecot.sieve
  sieve_before = /var/vmail/sieve/dovecot.sieve
  sieve_dir = /%Lh/sieve
  sieve_global_dir = /var/vmail/sieve
  user = mailadmin@domain.com lrwstipekx
}
protocols = pop3 imap sieve lmtp
service auth {
  unix_listener /var/spool/postfix/private/dovecot-auth {
    group = postfix
    mode = 0666
    user = postfix
  }
  unix_listener auth-master {
    group = vmail
    mode = 0666
    user = vmail
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0660
    user = vmail
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0660
    user = vmail
  }
}
service imap-login {
  process_limit = 500
  service_count = 1
}
service lmtp {
  executable = lmtp -L
  inet_listener lmtp {
    port = 24
  }
  process_min_avail = 5
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
  user = vmail
}
service pop3-login {
  service_count = 1
}
service quota-warning {
  executable = script /usr/local/bin/dovecot-quota-warning.sh
  unix_listener quota-warning {
    group = vmail
    mode = 0660
    user = vmail
  }
}
ssl_cert = </etc/pki/tls/certs/iRedMail.crt
ssl_cipher_list = HIGH:!SSLv2:!SSLv3:!TLSv1.0:!aNULL:!MD5
ssl_key = </etc/pki/tls/private/iRedMail.key
ssl_protocols = !SSLv2 !SSLv3
userdb {
  args = /etc/dovecot/dovecot-ldap.conf
  driver = ldap
}
protocol lda {
  auth_socket_path = /var/run/dovecot/auth-master
  lda_mailbox_autocreate = yes
  log_path = /var/log/dovecot-sieve.log
  mail_plugins = quota mailbox_alias acl sieve
  postmaster_address = root
}
protocol lmtp {
  info_log_path = /var/log/dovecot-lmtp.log
  lmtp_save_to_detail_mailbox = yes
  mail_plugins = quota sieve
  postmaster_address = postmaster
  recipient_delimiter = +
}
protocol imap {
  imap_client_workarounds = tb-extra-mailbox-sep
  mail_max_userip_connections = 20
  mail_plugins = quota mailbox_alias acl imap_quota imap_acl
}
protocol pop3 {
  mail_max_userip_connections = 20
  mail_plugins = quota mailbox_alias acl
  pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
  pop3_uidl_format = %08Xu%08Xv
}

I think maybe that i donot set ACL for dovecot, i've set ACL for dovecot in file /etc/dovecot/dovecot.conf at pluggin block but still error like that.
ACL

user = mailadmin@domain.com lrw

Please help me!

----

Spider Email Archiver: On-Premises, lightweight email archiving software developed by iRedMail team. Supports Amazon S3 compatible storage and custom branding.

2

Re: dovet master user cannot view user mailbox

Hi zhb,
i've fixed this.
Cause my dovecot version is 2.2.10 so that could be set ACL for master user like this

in file: /etc/dovecot/dovecot.conf at plugin block

acl = vfile:/etc/dovecot/acl:cache_secs=300

in directory /etc/dovecot/acl create 5 files acl INBOX Draft Sent Trash Junk with content

user = mailadmin@domain.com lrwstipekxa

It works

3

Re: dovet master user cannot view user mailbox

Thanks for sharing. but upgrading Dovecot to a newer version might be better. smile