Hello, I'm running Dovecot 2.2.3, and am having issues with my public folders, shared folders, and virtual/ALl folders apparently ACLs are on that list as well. I was debugging an unrelated problem with my smtp server and got the following dovecot debug log output. Below is also a doveconf -n output as well as my shared-folder definition file and my global-acls file. What I'm trying to accomplish is: 1. Have a public folder that any user on the system can put messages into and respond to. 2. Have a shared folder in which user1 at example.com and user1 at example2.com can exchange messages. 3. For each user on the system give them a Virtual/All folder for *all of their messages. I'd appreciate any help. As an aside if anyone sees an issue with my SSL ciphers list i'd appreciate knowing that as well, in brief I'm trying to get the most secure list, pfs, and not worrying about backware compatibility. If it's not TLS 1.2 I don't touch it. Thanks. Dave. Feb 12 08:48:40 imap(user at example.com): Debug: Module loaded: /usr/local/lib/dovecot/lib01_acl_plugin.so Feb 12 08:48:40 imap(user at example.com): Debug: Module loaded: /usr/local/lib/dovecot/lib02_imap_acl_plugin.so Feb 12 08:48:40 imap(user at example.com): Debug: Effective uid=999, gid=999, home=/home/vmail/example.com/user Feb 12 08:48:40 imap(user at example.com): Debug: Namespace inbox: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:~/mail/:LAYOUT=fs:INDEX=~/mail/ Feb 12 08:48:40 imap(user at example.com): Debug: fs: root=/home/vmail/example.com/user/mail, index=, indexpvt=, control=, inbox=/home/vmail/example.com/user/mail, altFeb 12 08:48:40 imap(user at example.com): Debug: acl: initializing backend with data: vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username user at example.com Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 1 Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL file: /usr/local/etc/dovecot/global-acls Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : type=public, prefix=public/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=yes location=maildir:/home/vmail/public/:LAYOUT=fs:CONTROL=~/mail/public:INDEXPVT=~/mail/public:INDEX=~/mail/public Feb 12 08:48:40 imap(user at example.com): Debug: fs: root=/home/vmail/public, index=/home/vmail/example.com/user/mail/public, indexpvt=/home/vmail/example.com/user/mail/public, control=/home/vmail/example.com/user/mail/public, inbox=, altFeb 12 08:48:40 imap(user at example.com): Debug: acl: initializing backend with data: vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username user at example.com Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 0 Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL file: /usr/local/etc/dovecot/global-acls Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=yes location=maildir:~/mail/:INDEX=~/mail/shared/%Ld/%Ln Feb 12 08:48:40 imap(user at example.com): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, altFeb 12 08:48:40 imap(user at example.com): Debug: acl: initializing backend with data: vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username user at example.com Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 0 Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL file: /usr/local/etc/dovecot/global-acls Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : type=private, prefix=virtual/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=yes location=virtual:/usr/local/etc/dovecot/virtual Feb 12 08:48:40 imap(user at example.com): Debug: fs: root=/usr/local/etc/dovecot/virtual, index=, indexpvt=, control=, inbox=, altFeb 12 08:48:40 imap(user at example.com): Debug: acl: initializing backend with data: vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username user at example.com Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 1 Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL file: /usr/local/etc/dovecot/global-acls Feb 12 08:48:40 imap(user at example.com): Debug: quota: quota_over_flag check: quota_over_script unset - skipping Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Drafts/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Spam/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Trash/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Sent/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Archives/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/logcheck/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/public/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox 'public/TestFolder' matches global ACL pattern 'public/TestFolder' Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/public/TestFolder/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/virtual/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/.Junk/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/ham/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/fail2ban/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/.Sent/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/.Trash/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Maildir/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Maildir/public/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Maildir/public/.TestFolder/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Deleted Items/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Archive/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /home/vmail/example.com/user/mail/Junk/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox 'public/TestFolder' matches global ACL pattern 'public/TestFolder' Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file /home/vmail/public/TestFolder/dovecot-acl Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file /home/vmail/public/TestFolder1/dovecot-acl Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file /home/vmail/public/dovecot-acl Feb 12 08:48:40 imap(user at example.com): Debug: acl: No lookup right to mailbox: public/TestFolder1 Feb 12 08:48:40 imap(user at example.com): Debug: Namespace shared/: Using permissions from : mode=0700 gid=default Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /usr/local/etc/dovecot/virtual/dovecot-acl not found Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file /usr/local/etc/dovecot/virtual/All/dovecot-acl not found doveconf -n # 2.2.33.2 (d6601f4ec): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.4.21 (92477967) # OS: FreeBSD 11.1-RELEASE-p4 amd64 auth_default_realm = example.com auth_mechanisms = plain login auth_realms = example.com example2.com dict { acl = mysql:/usr/local/etc/dovecot/shared-folders.conf sqlquota = mysql:/usr/local/etc/dovecot/quota.conf } first_valid_gid = 999 first_valid_uid = 999 hostname = mail.example.com imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags last_valid_gid = 999 last_valid_uid = 999 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes listen = 127.0.0.1 xxx.xxx.xxx.xxx lmtp_rcpt_check_quota = yes mail_access_groups = vmail mail_fsync = never mail_gid = vmail mail_home = /home/vmail/%d/%n mail_location = maildir:~/mail/:LAYOUT=fs:INDEX=~/mail/ mail_plugins = acl mail_log notify quota quota_clone trash virtual welcome zlib mail_server_admin = mailto:postmaster at example.com mail_uid = vmail mailbox_list_index = yes 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 index ihave duplicate mime foreverypart extracttext imapflags notify imapsieve vnd.dovecot.imapsieve namespace { hidden = no list = yes location = maildir:/home/vmail/public/:LAYOUT=fs:CONTROL=~/mail/public:INDEXPVT=~/mail/public:INDEX=~/mail/public mailbox TestFolder { auto = subscribe comment = Public Folder for message sharing } prefix = public/ separator = / subscriptions = yes type = public } namespace { list = yes location = maildir:~/mail/:INDEX=~/mail/shared/%%Ld/%%Ln prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace { location = virtual:/usr/local/etc/dovecot/virtual mailbox All { auto = subscribe comment = All my messages special_use = \All } prefix = virtual/ separator = / } namespace inbox { inbox = yes location mailbox Archive { auto = no special_use = \Archive } mailbox Archives { auto = subscribe special_use = \Archive } mailbox "Deleted Messages" { auto = no autoexpunge = 30 days special_use = \Trash } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Junk { auto = no autoexpunge = 30 days special_use = \Junk } mailbox "Junk E-mail" { auto = no autoexpunge = 30 days special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Items" { auto = no special_use = \Sent } mailbox "Sent Messages" { auto = no special_use = \Sent } mailbox Spam { auto = subscribe autoexpunge = 30 days special_use = \Junk } mailbox Trash { auto = subscribe autoexpunge = 30 days special_use = \Trash } prefix separator = / type = private } passdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 acl_anyone = allow acl_shared_dict = proxy::acl imapsieve_mailbox1_before file:/usr/local/lib/dovecot/sieve/report-spam.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Spam imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Spam imapsieve_mailbox2_name = * mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = count:User quota quota_clone_dict = proxy::sqlquota quota_exceeded_message = Storage quota for this account has been exceeded, please try again later. quota_grace = 10%% quota_status_nouser = DUNNO quota_status_overquota = 552 5.2.2 Mailbox is full quota_status_success = DUNNO quota_vsizes = true quota_warning = storage=100%% quota-exceeded 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=90%% quota-warning 90 %u quota_warning4 = storage=85%% quota-warning 85 %u quota_warning5 = storage=75%% quota-warning 75 %u sieve = ~/.dovecot.sieve sieve_before = /home/vmail/sieve/before.d sieve_default = /home/vmail/sieve/default.sieve sieve_dir = ~/sieve sieve_extensions = +notify +imapflags sieve_global_dir = /home/vmail/sieve sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute sieve_max_redirects = 30 sieve_max_script_size = 1M sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_user_log = /home/vmail/sieve/sieve_error.log trash = /usr/local/etc/dovecot/trash.conf welcome_script = welcome %u welcome_wait = yes } postmaster_address = postmaster at example.com protocols = imap lmtp sieve sendmail_path = /usr/local/sbin/sendmail service auth-worker { user = $default_internal_user } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-userdb { group = vmail mode = 0666 user = vmail } } service dict { unix_listener dict { group = vmail mode = 0660 user = vmail } } service imap-login { inet_listener imap { address = 127.0.0.1 port = 143 } inet_listener imaps { address = xxx.xxx.xxx.xxx port = 993 ssl = yes } } service imap { executable = imap } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { address = 127.0.0.1 port = 4190 } } service quota-status { client_limit = 1 executable = quota-status -p postfix unix_listener /var/spool/postfix/private/dovecot-quota { group = postfix mode = 0660 user = postfix } } service quota-warning { executable = script /usr/local/etc/dovecot/quota-warning.sh unix_listener quota-warning { group = vmail mode = 0660 user = vmail } user = vmail } service welcome { executable = script /usr/local/etc/dovecot/welcome.sh unix_listener welcome { user = vmail } user = vmail } ssl = required ssl_cert = </usr/local/etc/ssl/acme/example.com/fullchain.pem ssl_cipher_list ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 at STRENGTH ssl_dh_parameters_length = 2048 ssl_key = # hidden, use -P to show it ssl_options = no_compression ssl_prefer_server_ciphers = yes ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 userdb { args = /usr/local/etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lmtp { mail_plugins = acl mail_log notify quota quota_clone trash virtual welcome zlib quota sieve } protocol lda { mail_fsync = optimized mail_plugins = acl mail_log notify quota quota_clone trash virtual welcome zlib sieve } protocol imap { mail_plugins = acl mail_log notify quota quota_clone trash virtual welcome zlib imap_acl imap_quota imap_sieve imap_zlib last_login } shared-folders.conf connect = DatabaseConnectionParameters # For shared mailboxes map { pattern = shared/shared-boxes/user/$to/$from table = user_shares value_field = dummy fields { from_user = $from to_user = $to } } # To share mailbox to anyone uncomment acl_anyone=allow in # 90-acl.conf map { pattern = shared/shared-boxes/anyone/$from table = anyone_shares value_field = dummy fields { from_user = $from } } global-acls public/TestFolder user=user lrwstipekxa
Hi! It seems you are running 2.2.33.2 =) Also, Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox 'public/TestFolder' matches global ACL pattern 'public/TestFolder' Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file /home/vmail/public/TestFolder/dovecot-acl Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file /home/vmail/public/dovecot-acl it seems there are some folder specific ACLs, can you check these? Aki On 15.02.2018 10:40, David Mehler wrote:> Hello, > > I'm running Dovecot 2.2.3, and am having issues with my public > folders, shared folders, and virtual/ALl folders apparently ACLs are > on that list as well. > > I was debugging an unrelated problem with my smtp server and got the > following dovecot debug log output. Below is also a doveconf -n output > as well as my shared-folder definition file and my global-acls file. > > What I'm trying to accomplish is: > > 1. Have a public folder that any user on the system can put messages > into and respond to. > 2. Have a shared folder in which user1 at example.com and > user1 at example2.com can exchange messages. > 3. For each user on the system give them a Virtual/All folder for *all > of their messages. > > I'd appreciate any help. As an aside if anyone sees an issue with my > SSL ciphers list i'd appreciate knowing that as well, in brief I'm > trying to get the most secure list, pfs, and not worrying about > backware compatibility. If it's not TLS 1.2 I don't touch it. > > Thanks. > Dave. > Feb 12 08:48:40 imap(user at example.com): Debug: Module loaded: > /usr/local/lib/dovecot/lib01_acl_plugin.so > Feb 12 08:48:40 imap(user at example.com): Debug: Module loaded: > /usr/local/lib/dovecot/lib02_imap_acl_plugin.so > Feb 12 08:48:40 imap(user at example.com): Debug: Effective uid=999, > gid=999, home=/home/vmail/example.com/user > Feb 12 08:48:40 imap(user at example.com): Debug: Namespace inbox: > type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, > subscriptions=yes location=maildir:~/mail/:LAYOUT=fs:INDEX=~/mail/ > Feb 12 08:48:40 imap(user at example.com): Debug: fs: > root=/home/vmail/example.com/user/mail, index=, indexpvt=, control=, > inbox=/home/vmail/example.com/user/mail, alt> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing > backend with data: > vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 > Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username > user at example.com > Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 1 > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL > file: /usr/local/etc/dovecot/global-acls > Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : > type=public, prefix=public/, sep=/, inbox=no, hidden=no, list=yes, > subscriptions=yes > location=maildir:/home/vmail/public/:LAYOUT=fs:CONTROL=~/mail/public:INDEXPVT=~/mail/public:INDEX=~/mail/public > Feb 12 08:48:40 imap(user at example.com): Debug: fs: > root=/home/vmail/public, > index=/home/vmail/example.com/user/mail/public, > indexpvt=/home/vmail/example.com/user/mail/public, > control=/home/vmail/example.com/user/mail/public, inbox=, alt> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing > backend with data: > vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 > Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username > user at example.com > Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 0 > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL > file: /usr/local/etc/dovecot/global-acls > Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : > type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=yes, > subscriptions=yes location=maildir:~/mail/:INDEX=~/mail/shared/%Ld/%Ln > Feb 12 08:48:40 imap(user at example.com): Debug: shared: > root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing > backend with data: > vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 > Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username > user at example.com > Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 0 > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL > file: /usr/local/etc/dovecot/global-acls > Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : > type=private, prefix=virtual/, sep=/, inbox=no, hidden=no, list=yes, > subscriptions=yes location=virtual:/usr/local/etc/dovecot/virtual > Feb 12 08:48:40 imap(user at example.com): Debug: fs: > root=/usr/local/etc/dovecot/virtual, index=, indexpvt=, control=, > inbox=, alt> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing > backend with data: > vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 > Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username > user at example.com > Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 1 > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL > file: /usr/local/etc/dovecot/global-acls > Feb 12 08:48:40 imap(user at example.com): Debug: quota: quota_over_flag > check: quota_over_script unset - skipping > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Drafts/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Spam/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Trash/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Sent/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Archives/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/logcheck/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/public/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox > 'public/TestFolder' matches global ACL pattern 'public/TestFolder' > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/public/TestFolder/dovecot-acl not > found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/virtual/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/.Junk/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/ham/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/fail2ban/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/.Sent/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/.Trash/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Maildir/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Maildir/public/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Maildir/public/.TestFolder/dovecot-acl > not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Deleted Items/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Archive/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /home/vmail/example.com/user/mail/Junk/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox > 'public/TestFolder' matches global ACL pattern 'public/TestFolder' > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file > /home/vmail/public/TestFolder/dovecot-acl > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file > /home/vmail/public/TestFolder1/dovecot-acl > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file > /home/vmail/public/dovecot-acl > Feb 12 08:48:40 imap(user at example.com): Debug: acl: No lookup right to > mailbox: public/TestFolder1 > Feb 12 08:48:40 imap(user at example.com): Debug: Namespace shared/: > Using permissions from : mode=0700 gid=default > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /usr/local/etc/dovecot/virtual/dovecot-acl not found > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file > /usr/local/etc/dovecot/virtual/All/dovecot-acl not found > > doveconf -n > # 2.2.33.2 (d6601f4ec): /usr/local/etc/dovecot/dovecot.conf > # Pigeonhole version 0.4.21 (92477967) > # OS: FreeBSD 11.1-RELEASE-p4 amd64 > auth_default_realm = example.com > auth_mechanisms = plain login > auth_realms = example.com example2.com > dict { > acl = mysql:/usr/local/etc/dovecot/shared-folders.conf > sqlquota = mysql:/usr/local/etc/dovecot/quota.conf > } > first_valid_gid = 999 > first_valid_uid = 999 > hostname = mail.example.com > imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags > last_valid_gid = 999 > last_valid_uid = 999 > lda_mailbox_autocreate = yes > lda_mailbox_autosubscribe = yes > listen = 127.0.0.1 xxx.xxx.xxx.xxx > lmtp_rcpt_check_quota = yes > mail_access_groups = vmail > mail_fsync = never > mail_gid = vmail > mail_home = /home/vmail/%d/%n > mail_location = maildir:~/mail/:LAYOUT=fs:INDEX=~/mail/ > mail_plugins = acl mail_log notify quota quota_clone trash virtual welcome zlib > mail_server_admin = mailto:postmaster at example.com > mail_uid = vmail > mailbox_list_index = yes > 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 index ihave duplicate mime foreverypart > extracttext imapflags notify imapsieve vnd.dovecot.imapsieve > namespace { > hidden = no > list = yes > location = maildir:/home/vmail/public/:LAYOUT=fs:CONTROL=~/mail/public:INDEXPVT=~/mail/public:INDEX=~/mail/public > mailbox TestFolder { > auto = subscribe > comment = Public Folder for message sharing > } > prefix = public/ > separator = / > subscriptions = yes > type = public > } > namespace { > list = yes > location = maildir:~/mail/:INDEX=~/mail/shared/%%Ld/%%Ln > prefix = shared/%%u/ > separator = / > subscriptions = yes > type = shared > } > namespace { > location = virtual:/usr/local/etc/dovecot/virtual > mailbox All { > auto = subscribe > comment = All my messages > special_use = \All > } > prefix = virtual/ > separator = / > } > namespace inbox { > inbox = yes > location > mailbox Archive { > auto = no > special_use = \Archive > } > mailbox Archives { > auto = subscribe > special_use = \Archive > } > mailbox "Deleted Messages" { > auto = no > autoexpunge = 30 days > special_use = \Trash > } > mailbox Drafts { > auto = subscribe > special_use = \Drafts > } > mailbox Junk { > auto = no > autoexpunge = 30 days > special_use = \Junk > } > mailbox "Junk E-mail" { > auto = no > autoexpunge = 30 days > special_use = \Junk > } > mailbox Sent { > auto = subscribe > special_use = \Sent > } > mailbox "Sent Items" { > auto = no > special_use = \Sent > } > mailbox "Sent Messages" { > auto = no > special_use = \Sent > } > mailbox Spam { > auto = subscribe > autoexpunge = 30 days > special_use = \Junk > } > mailbox Trash { > auto = subscribe > autoexpunge = 30 days > special_use = \Trash > } > prefix > separator = / > type = private > } > passdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > plugin { > acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 > acl_anyone = allow > acl_shared_dict = proxy::acl > imapsieve_mailbox1_before > file:/usr/local/lib/dovecot/sieve/report-spam.sieve > imapsieve_mailbox1_causes = COPY > imapsieve_mailbox1_name = Spam > imapsieve_mailbox2_before = file:/usr/local/lib/dovecot/sieve/report-ham.sieve > imapsieve_mailbox2_causes = COPY > imapsieve_mailbox2_from = Spam > imapsieve_mailbox2_name = * > mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename > mail_log_fields = uid box msgid size > quota = count:User quota > quota_clone_dict = proxy::sqlquota > quota_exceeded_message = Storage quota for this account has been > exceeded, please try again later. > quota_grace = 10%% > quota_status_nouser = DUNNO > quota_status_overquota = 552 5.2.2 Mailbox is full > quota_status_success = DUNNO > quota_vsizes = true > quota_warning = storage=100%% quota-exceeded 100 %u > quota_warning2 = storage=95%% quota-warning 95 %u > quota_warning3 = storage=90%% quota-warning 90 %u > quota_warning4 = storage=85%% quota-warning 85 %u > quota_warning5 = storage=75%% quota-warning 75 %u > sieve = ~/.dovecot.sieve > sieve_before = /home/vmail/sieve/before.d > sieve_default = /home/vmail/sieve/default.sieve > sieve_dir = ~/sieve > sieve_extensions = +notify +imapflags > sieve_global_dir = /home/vmail/sieve > sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute > sieve_max_redirects = 30 > sieve_max_script_size = 1M > sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve > sieve_plugins = sieve_imapsieve sieve_extprograms > sieve_user_log = /home/vmail/sieve/sieve_error.log > trash = /usr/local/etc/dovecot/trash.conf > welcome_script = welcome %u > welcome_wait = yes > } > postmaster_address = postmaster at example.com > protocols = imap lmtp sieve > sendmail_path = /usr/local/sbin/sendmail > service auth-worker { > user = $default_internal_user > } > service auth { > unix_listener /var/spool/postfix/private/auth { > group = postfix > mode = 0660 > user = postfix > } > unix_listener auth-userdb { > group = vmail > mode = 0666 > user = vmail > } > } > service dict { > unix_listener dict { > group = vmail > mode = 0660 > user = vmail > } > } > service imap-login { > inet_listener imap { > address = 127.0.0.1 > port = 143 > } > inet_listener imaps { > address = xxx.xxx.xxx.xxx > port = 993 > ssl = yes > } > } > service imap { > executable = imap > } > service lmtp { > unix_listener /var/spool/postfix/private/dovecot-lmtp { > group = postfix > mode = 0660 > user = postfix > } > } > service managesieve-login { > inet_listener sieve { > address = 127.0.0.1 > port = 4190 > } > } > service quota-status { > client_limit = 1 > executable = quota-status -p postfix > unix_listener /var/spool/postfix/private/dovecot-quota { > group = postfix > mode = 0660 > user = postfix > } > } > service quota-warning { > executable = script /usr/local/etc/dovecot/quota-warning.sh > unix_listener quota-warning { > group = vmail > mode = 0660 > user = vmail > } > user = vmail > } > service welcome { > executable = script /usr/local/etc/dovecot/welcome.sh > unix_listener welcome { > user = vmail > } > user = vmail > } > ssl = required > ssl_cert = </usr/local/etc/ssl/acme/example.com/fullchain.pem > ssl_cipher_list > ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 at STRENGTH > ssl_dh_parameters_length = 2048 > ssl_key = # hidden, use -P to show it > ssl_options = no_compression > ssl_prefer_server_ciphers = yes > ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 > userdb { > args = /usr/local/etc/dovecot/dovecot-sql.conf.ext > driver = sql > } > protocol lmtp { > mail_plugins = acl mail_log notify quota quota_clone trash virtual > welcome zlib quota sieve > } > protocol lda { > mail_fsync = optimized > mail_plugins = acl mail_log notify quota quota_clone trash virtual > welcome zlib sieve > } > protocol imap { > mail_plugins = acl mail_log notify quota quota_clone trash virtual > welcome zlib imap_acl imap_quota imap_sieve imap_zlib last_login > } > > shared-folders.conf > connect = DatabaseConnectionParameters > # For shared mailboxes > map { > pattern = shared/shared-boxes/user/$to/$from > table = user_shares > value_field = dummy > > fields { > from_user = $from > to_user = $to > } > } > > # To share mailbox to anyone uncomment acl_anyone=allow in > # 90-acl.conf > map { > pattern = shared/shared-boxes/anyone/$from > table = anyone_shares > value_field = dummy > > fields { > from_user = $from > } > } > > global-acls > public/TestFolder user=user lrwstipekxa
Hello, Thank you for your reply. Here's my acl files: public/TestFolder dovecot-acl anyone lr user=user1 akxeilprwts -user=user1 user=user2 lr public/TestFolder1 dovecot-acl user=user1 lr user=user2 lr public/dovecot-acl user=user1 lr user=user2 lr and I have another dovecot-acl file in shared/office folder: user=user1 at domain.com lrwstipekxa user=user2 at domain.com lrwstipekxa Thanks. Dave. On 2/15/18, Aki Tuomi <aki.tuomi at dovecot.fi> wrote:> Hi! > > It seems you are running 2.2.33.2 =) > > Also, > > Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox > 'public/TestFolder' matches global ACL pattern 'public/TestFolder' > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file > /home/vmail/public/TestFolder/dovecot-acl > Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file > /home/vmail/public/dovecot-acl > > it seems there are some folder specific ACLs, can you check these? > > Aki > > On 15.02.2018 10:40, David Mehler wrote: >> Hello, >> >> I'm running Dovecot 2.2.3, and am having issues with my public >> folders, shared folders, and virtual/ALl folders apparently ACLs are >> on that list as well. >> >> I was debugging an unrelated problem with my smtp server and got the >> following dovecot debug log output. Below is also a doveconf -n output >> as well as my shared-folder definition file and my global-acls file. >> >> What I'm trying to accomplish is: >> >> 1. Have a public folder that any user on the system can put messages >> into and respond to. >> 2. Have a shared folder in which user1 at example.com and >> user1 at example2.com can exchange messages. >> 3. For each user on the system give them a Virtual/All folder for *all >> of their messages. >> >> I'd appreciate any help. As an aside if anyone sees an issue with my >> SSL ciphers list i'd appreciate knowing that as well, in brief I'm >> trying to get the most secure list, pfs, and not worrying about >> backware compatibility. If it's not TLS 1.2 I don't touch it. >> >> Thanks. >> Dave. >> Feb 12 08:48:40 imap(user at example.com): Debug: Module loaded: >> /usr/local/lib/dovecot/lib01_acl_plugin.so >> Feb 12 08:48:40 imap(user at example.com): Debug: Module loaded: >> /usr/local/lib/dovecot/lib02_imap_acl_plugin.so >> Feb 12 08:48:40 imap(user at example.com): Debug: Effective uid=999, >> gid=999, home=/home/vmail/example.com/user >> Feb 12 08:48:40 imap(user at example.com): Debug: Namespace inbox: >> type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, >> subscriptions=yes location=maildir:~/mail/:LAYOUT=fs:INDEX=~/mail/ >> Feb 12 08:48:40 imap(user at example.com): Debug: fs: >> root=/home/vmail/example.com/user/mail, index=, indexpvt=, control=, >> inbox=/home/vmail/example.com/user/mail, alt>> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing >> backend with data: >> vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username >> user at example.com >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 1 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL >> file: /usr/local/etc/dovecot/global-acls >> Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : >> type=public, prefix=public/, sep=/, inbox=no, hidden=no, list=yes, >> subscriptions=yes >> location=maildir:/home/vmail/public/:LAYOUT=fs:CONTROL=~/mail/public:INDEXPVT=~/mail/public:INDEX=~/mail/public >> Feb 12 08:48:40 imap(user at example.com): Debug: fs: >> root=/home/vmail/public, >> index=/home/vmail/example.com/user/mail/public, >> indexpvt=/home/vmail/example.com/user/mail/public, >> control=/home/vmail/example.com/user/mail/public, inbox=, alt>> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing >> backend with data: >> vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username >> user at example.com >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 0 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL >> file: /usr/local/etc/dovecot/global-acls >> Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : >> type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=yes, >> subscriptions=yes location=maildir:~/mail/:INDEX=~/mail/shared/%Ld/%Ln >> Feb 12 08:48:40 imap(user at example.com): Debug: shared: >> root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt>> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing >> backend with data: >> vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username >> user at example.com >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 0 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL >> file: /usr/local/etc/dovecot/global-acls >> Feb 12 08:48:40 imap(user at example.com): Debug: Namespace : >> type=private, prefix=virtual/, sep=/, inbox=no, hidden=no, list=yes, >> subscriptions=yes location=virtual:/usr/local/etc/dovecot/virtual >> Feb 12 08:48:40 imap(user at example.com): Debug: fs: >> root=/usr/local/etc/dovecot/virtual, index=, indexpvt=, control=, >> inbox=, alt>> Feb 12 08:48:40 imap(user at example.com): Debug: acl: initializing >> backend with data: >> vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: acl username >> user at example.com >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: owner = 1 >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: Global ACL >> file: /usr/local/etc/dovecot/global-acls >> Feb 12 08:48:40 imap(user at example.com): Debug: quota: quota_over_flag >> check: quota_over_script unset - skipping >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Drafts/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Spam/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Trash/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Sent/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Archives/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/logcheck/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/public/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox >> 'public/TestFolder' matches global ACL pattern 'public/TestFolder' >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/public/TestFolder/dovecot-acl not >> found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/virtual/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/.Junk/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/ham/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/fail2ban/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/.Sent/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/.Trash/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Maildir/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Maildir/public/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Maildir/public/.TestFolder/dovecot-acl >> not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Deleted Items/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Archive/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /home/vmail/example.com/user/mail/Junk/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: Mailbox >> 'public/TestFolder' matches global ACL pattern 'public/TestFolder' >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file >> /home/vmail/public/TestFolder/dovecot-acl >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file >> /home/vmail/public/TestFolder1/dovecot-acl >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: reading file >> /home/vmail/public/dovecot-acl >> Feb 12 08:48:40 imap(user at example.com): Debug: acl: No lookup right to >> mailbox: public/TestFolder1 >> Feb 12 08:48:40 imap(user at example.com): Debug: Namespace shared/: >> Using permissions from : mode=0700 gid=default >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /usr/local/etc/dovecot/virtual/dovecot-acl not found >> Feb 12 08:48:40 imap(user at example.com): Debug: acl vfile: file >> /usr/local/etc/dovecot/virtual/All/dovecot-acl not found >> >> doveconf -n >> # 2.2.33.2 (d6601f4ec): /usr/local/etc/dovecot/dovecot.conf >> # Pigeonhole version 0.4.21 (92477967) >> # OS: FreeBSD 11.1-RELEASE-p4 amd64 >> auth_default_realm = example.com >> auth_mechanisms = plain login >> auth_realms = example.com example2.com >> dict { >> acl = mysql:/usr/local/etc/dovecot/shared-folders.conf >> sqlquota = mysql:/usr/local/etc/dovecot/quota.conf >> } >> first_valid_gid = 999 >> first_valid_uid = 999 >> hostname = mail.example.com >> imap_client_workarounds = delay-newmail tb-extra-mailbox-sep >> tb-lsub-flags >> last_valid_gid = 999 >> last_valid_uid = 999 >> lda_mailbox_autocreate = yes >> lda_mailbox_autosubscribe = yes >> listen = 127.0.0.1 xxx.xxx.xxx.xxx >> lmtp_rcpt_check_quota = yes >> mail_access_groups = vmail >> mail_fsync = never >> mail_gid = vmail >> mail_home = /home/vmail/%d/%n >> mail_location = maildir:~/mail/:LAYOUT=fs:INDEX=~/mail/ >> mail_plugins = acl mail_log notify quota quota_clone trash virtual welcome >> zlib >> mail_server_admin = mailto:postmaster at example.com >> mail_uid = vmail >> mailbox_list_index = yes >> 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 index ihave duplicate mime foreverypart >> extracttext imapflags notify imapsieve vnd.dovecot.imapsieve >> namespace { >> hidden = no >> list = yes >> location >> maildir:/home/vmail/public/:LAYOUT=fs:CONTROL=~/mail/public:INDEXPVT=~/mail/public:INDEX=~/mail/public >> mailbox TestFolder { >> auto = subscribe >> comment = Public Folder for message sharing >> } >> prefix = public/ >> separator = / >> subscriptions = yes >> type = public >> } >> namespace { >> list = yes >> location = maildir:~/mail/:INDEX=~/mail/shared/%%Ld/%%Ln >> prefix = shared/%%u/ >> separator = / >> subscriptions = yes >> type = shared >> } >> namespace { >> location = virtual:/usr/local/etc/dovecot/virtual >> mailbox All { >> auto = subscribe >> comment = All my messages >> special_use = \All >> } >> prefix = virtual/ >> separator = / >> } >> namespace inbox { >> inbox = yes >> location >> mailbox Archive { >> auto = no >> special_use = \Archive >> } >> mailbox Archives { >> auto = subscribe >> special_use = \Archive >> } >> mailbox "Deleted Messages" { >> auto = no >> autoexpunge = 30 days >> special_use = \Trash >> } >> mailbox Drafts { >> auto = subscribe >> special_use = \Drafts >> } >> mailbox Junk { >> auto = no >> autoexpunge = 30 days >> special_use = \Junk >> } >> mailbox "Junk E-mail" { >> auto = no >> autoexpunge = 30 days >> special_use = \Junk >> } >> mailbox Sent { >> auto = subscribe >> special_use = \Sent >> } >> mailbox "Sent Items" { >> auto = no >> special_use = \Sent >> } >> mailbox "Sent Messages" { >> auto = no >> special_use = \Sent >> } >> mailbox Spam { >> auto = subscribe >> autoexpunge = 30 days >> special_use = \Junk >> } >> mailbox Trash { >> auto = subscribe >> autoexpunge = 30 days >> special_use = \Trash >> } >> prefix >> separator = / >> type = private >> } >> passdb { >> args = /usr/local/etc/dovecot/dovecot-sql.conf.ext >> driver = sql >> } >> plugin { >> acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300 >> acl_anyone = allow >> acl_shared_dict = proxy::acl >> imapsieve_mailbox1_before >> file:/usr/local/lib/dovecot/sieve/report-spam.sieve >> imapsieve_mailbox1_causes = COPY >> imapsieve_mailbox1_name = Spam >> imapsieve_mailbox2_before >> file:/usr/local/lib/dovecot/sieve/report-ham.sieve >> imapsieve_mailbox2_causes = COPY >> imapsieve_mailbox2_from = Spam >> imapsieve_mailbox2_name = * >> mail_log_events = delete undelete expunge copy mailbox_delete >> mailbox_rename >> mail_log_fields = uid box msgid size >> quota = count:User quota >> quota_clone_dict = proxy::sqlquota >> quota_exceeded_message = Storage quota for this account has been >> exceeded, please try again later. >> quota_grace = 10%% >> quota_status_nouser = DUNNO >> quota_status_overquota = 552 5.2.2 Mailbox is full >> quota_status_success = DUNNO >> quota_vsizes = true >> quota_warning = storage=100%% quota-exceeded 100 %u >> quota_warning2 = storage=95%% quota-warning 95 %u >> quota_warning3 = storage=90%% quota-warning 90 %u >> quota_warning4 = storage=85%% quota-warning 85 %u >> quota_warning5 = storage=75%% quota-warning 75 %u >> sieve = ~/.dovecot.sieve >> sieve_before = /home/vmail/sieve/before.d >> sieve_default = /home/vmail/sieve/default.sieve >> sieve_dir = ~/sieve >> sieve_extensions = +notify +imapflags >> sieve_global_dir = /home/vmail/sieve >> sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute >> sieve_max_redirects = 30 >> sieve_max_script_size = 1M >> sieve_pipe_bin_dir = /usr/local/lib/dovecot/sieve >> sieve_plugins = sieve_imapsieve sieve_extprograms >> sieve_user_log = /home/vmail/sieve/sieve_error.log >> trash = /usr/local/etc/dovecot/trash.conf >> welcome_script = welcome %u >> welcome_wait = yes >> } >> postmaster_address = postmaster at example.com >> protocols = imap lmtp sieve >> sendmail_path = /usr/local/sbin/sendmail >> service auth-worker { >> user = $default_internal_user >> } >> service auth { >> unix_listener /var/spool/postfix/private/auth { >> group = postfix >> mode = 0660 >> user = postfix >> } >> unix_listener auth-userdb { >> group = vmail >> mode = 0666 >> user = vmail >> } >> } >> service dict { >> unix_listener dict { >> group = vmail >> mode = 0660 >> user = vmail >> } >> } >> service imap-login { >> inet_listener imap { >> address = 127.0.0.1 >> port = 143 >> } >> inet_listener imaps { >> address = xxx.xxx.xxx.xxx >> port = 993 >> ssl = yes >> } >> } >> service imap { >> executable = imap >> } >> service lmtp { >> unix_listener /var/spool/postfix/private/dovecot-lmtp { >> group = postfix >> mode = 0660 >> user = postfix >> } >> } >> service managesieve-login { >> inet_listener sieve { >> address = 127.0.0.1 >> port = 4190 >> } >> } >> service quota-status { >> client_limit = 1 >> executable = quota-status -p postfix >> unix_listener /var/spool/postfix/private/dovecot-quota { >> group = postfix >> mode = 0660 >> user = postfix >> } >> } >> service quota-warning { >> executable = script /usr/local/etc/dovecot/quota-warning.sh >> unix_listener quota-warning { >> group = vmail >> mode = 0660 >> user = vmail >> } >> user = vmail >> } >> service welcome { >> executable = script /usr/local/etc/dovecot/welcome.sh >> unix_listener welcome { >> user = vmail >> } >> user = vmail >> } >> ssl = required >> ssl_cert = </usr/local/etc/ssl/acme/example.com/fullchain.pem >> ssl_cipher_list >> ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 at STRENGTH >> ssl_dh_parameters_length = 2048 >> ssl_key = # hidden, use -P to show it >> ssl_options = no_compression >> ssl_prefer_server_ciphers = yes >> ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1 >> userdb { >> args = /usr/local/etc/dovecot/dovecot-sql.conf.ext >> driver = sql >> } >> protocol lmtp { >> mail_plugins = acl mail_log notify quota quota_clone trash virtual >> welcome zlib quota sieve >> } >> protocol lda { >> mail_fsync = optimized >> mail_plugins = acl mail_log notify quota quota_clone trash virtual >> welcome zlib sieve >> } >> protocol imap { >> mail_plugins = acl mail_log notify quota quota_clone trash virtual >> welcome zlib imap_acl imap_quota imap_sieve imap_zlib last_login >> } >> >> shared-folders.conf >> connect = DatabaseConnectionParameters >> # For shared mailboxes >> map { >> pattern = shared/shared-boxes/user/$to/$from >> table = user_shares >> value_field = dummy >> >> fields { >> from_user = $from >> to_user = $to >> } >> } >> >> # To share mailbox to anyone uncomment acl_anyone=allow in >> # 90-acl.conf >> map { >> pattern = shared/shared-boxes/anyone/$from >> table = anyone_shares >> value_field = dummy >> >> fields { >> from_user = $from >> } >> } >> >> global-acls >> public/TestFolder user=user lrwstipekxa > >