problem with a public folder
Hello,
I'm trying to set up a public folder called TestFolder. I'm getting this error:
#doveadm acl get -A "Public/TestFolder" doveadm(username@example.com): Error: Can't open mailbox Public/TestFolder: Mailbox doesn't exist: Public/TestFolder Username ID Global Rights
# ls -ld /var/vmail/public drwx------ 4 vmail vmail 512 Apr 15 23:17 public/
# ls -ld public/.TestFolder drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/
My goal is a public namespace under which I have several folders for internal communications that users can access, TestFolder being an example.
Suggestions welcome. Thanks. Dave.
#doveconf -n # 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: FreeBSD 12.1-RELEASE-p3 amd64 # Hostname: mail.example.com auth_cache_size = 10 M auth_default_realm = example.com auth_mechanisms = plain login auth_realms = example.com dict { lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf } first_valid_gid = 2100 first_valid_uid = 2100 hostname = mail.example.com imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags imap_idle_notify_interval = 1 mins last_valid_gid = 2100 last_valid_uid = 2100 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To listen = xxx.xxx.xxx.xxx lmtp_rcpt_check_quota = yes log_timestamp = "%Y-%m-%d %H:%M:%S " mail_access_groups = vmail mail_fsync = never mail_gid = vmail mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt mail_privileged_group = vmail mail_server_admin = mailto:postmaster@example.com mail_uid = vmail 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 spamtest spamtestplus virustest editheader imapflags notify imapsieve vnd.dovecot.imapsieve namespace { location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public prefix = Public/ separator = / subscriptions = yes type = public } namespace { hidden = no list = yes location = maildir:/var/vmail/shared/office/.Maildir:CONTROL=~/.Maildir/control/office:INDEX=~/.Maildir/index/office prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe 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 fts = lucene fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \Spam fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball 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 = * last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it mail_crypt_curve = prime256v1 mail_crypt_global_private_key = # hidden, use -P to show it mail_crypt_global_public_key = # hidden, use -P to show it mail_crypt_save_version = 2 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = count:User quota quota_exceeded_message = Storage quota for this account has been exceeded, please try again later. quota_grace = 10%% quota_rule2 = Trash:ignore 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 = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve sieve_before = /var/vmail/sieve/global/spam-global.sieve sieve_extensions = +notify +imapflags +spamtest +spamtestplus +virustest +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute +vnd.dovecot.environment 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_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ \[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ \[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] sieve_spamtest_status_type = score sieve_user_log = /var/vmail/sieve/sieve_error.log sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. sieve_virustest_status_type = text sieve_virustest_text_value1 = clean sieve_virustest_text_value5 = infected trash = /usr/local/etc/dovecot/trash.conf welcome_script = welcome %n postmaster@%d welcome_wait = yes } postmaster_address = postmaster@example.com protocols = imap lmtp sieve sendmail_path = /usr/local/sbin/sendmail service auth-worker { user = vmail } 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 { mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 143 } process_min_avail = 1 } service imap { executable = imap } service lmtp { executable = lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { address = 172.16.21.3 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 stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } service welcome { executable = script /usr/local/etc/dovecot/welcome.sh unix_listener welcome { user = vmail } user = vmail } ssl = required ssl_cert =
mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail
On 25/4/20 10:35 am, David Mehler wrote:
I'm trying to set up a public folder called TestFolder. I'm getting this error:
#doveadm acl get -A "Public/TestFolder" doveadm(username@example.com): Error: Can't open mailbox Public/TestFolder: Mailbox doesn't exist: Public/TestFolder Username ID Global Rights
# ls -ld public/.TestFolder drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/
Try renaming the above folder to TestFolder (remove the dot).
namespace { location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public prefix = Public/ separator = / subscriptions = yes type = public }
-- Mark Constable 0419 530 037 https://spiderweb.com.au
On 25/4/20 10:35 am, David Mehler wrote:
#doveadm acl get -A "Public/TestFolder" doveadm(username@example.com): Error: Can't open mailbox Public/TestFolder: Mailbox doesn't exist: Public/TestFolder Username ID Global Rights
# ls -ld public/.TestFolder drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/
Try renaming the above folder to TestFolder (remove the dot).
namespace { location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public prefix = Public/ separator = / subscriptions = yes type = public }
-- Mark Constable 0419 530 037 https://spiderweb.com.au
-- Mark Constable 0419 530 037 https://spiderweb.com.au
On April 25, 2020 2:35:20 AM GMT+02:00, David Mehler dave.mehler@gmail.com wrote:
Hello,
I'm trying to set up a public folder called TestFolder. I'm getting this error:
#doveadm acl get -A "Public/TestFolder" doveadm(username@example.com): Error: Can't open mailbox Public/TestFolder: Mailbox doesn't exist: Public/TestFolder Username ID Global Rights
Have you enabled debug log and what does it show when you run this command?
# ls -ld /var/vmail/public drwx------ 4 vmail vmail 512 Apr 15 23:17 public/
# ls -ld public/.TestFolder drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/
My goal is a public namespace under which I have several folders for internal communications that users can access, TestFolder being an example.
Suggestions welcome. Thanks. Dave.
#doveconf -n # 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: FreeBSD 12.1-RELEASE-p3 amd64 # Hostname: mail.example.com auth_cache_size = 10 M auth_default_realm = example.com auth_mechanisms = plain login auth_realms = example.com dict { lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf } first_valid_gid = 2100 first_valid_uid = 2100 hostname = mail.example.com imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags imap_idle_notify_interval = 1 mins last_valid_gid = 2100 last_valid_uid = 2100 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To listen = xxx.xxx.xxx.xxx lmtp_rcpt_check_quota = yes log_timestamp = "%Y-%m-%d %H:%M:%S " mail_access_groups = vmail mail_fsync = never mail_gid = vmail mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt mail_privileged_group = vmail mail_server_admin = mailto:postmaster@example.com mail_uid = vmail 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 spamtest spamtestplus virustest editheader imapflags notify imapsieve vnd.dovecot.imapsieve namespace { location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public prefix = Public/ separator = / subscriptions = yes type = public } namespace { hidden = no list = yes location = maildir:/var/vmail/shared/office/.Maildir:CONTROL=~/.Maildir/control/office:INDEX=~/.Maildir/index/office prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe 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 fts = lucene fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \Spam fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball 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 = * last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it mail_crypt_curve = prime256v1 mail_crypt_global_private_key = # hidden, use -P to show it mail_crypt_global_public_key = # hidden, use -P to show it mail_crypt_save_version = 2 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = count:User quota quota_exceeded_message = Storage quota for this account has been exceeded, please try again later. quota_grace = 10%% quota_rule2 = Trash:ignore 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 = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve sieve_before = /var/vmail/sieve/global/spam-global.sieve sieve_extensions = +notify +imapflags +spamtest +spamtestplus +virustest +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute +vnd.dovecot.environment 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_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ \[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ \[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] sieve_spamtest_status_type = score sieve_user_log = /var/vmail/sieve/sieve_error.log sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. sieve_virustest_status_type = text sieve_virustest_text_value1 = clean sieve_virustest_text_value5 = infected trash = /usr/local/etc/dovecot/trash.conf welcome_script = welcome %n postmaster@%d welcome_wait = yes } postmaster_address = postmaster@example.com protocols = imap lmtp sieve sendmail_path = /usr/local/sbin/sendmail service auth-worker { user = vmail } 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 { mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 143 } process_min_avail = 1 } service imap { executable = imap } service lmtp { executable = lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { address = 172.16.21.3 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 stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } service welcome { executable = script /usr/local/etc/dovecot/welcome.sh unix_listener welcome { user = vmail } user = vmail } ssl = required ssl_cert =
mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail
-- Christian Kivalo
Hello,
Thanks for all the replies.
I've added a mailbox to the namespace definition for the public folders. I can do a doveadm acl get -A "Public/general" works but "Public/TestFolder" does not. Here's my 90-public.conf file:
#cat 90-public.conf # Public mailboxes namespace { type = public separator = / prefix = Public/ location = maildir:/var/vmail/public:LAYOUT=fs subscriptions = yes list = children mailbox general { auto = subscribe comment = Public Folder for message sharing } mailbox TestFolder { auto = subscribe comment = Public Folder } }
With the doveadm acl command something seems off with the user definitions: #doveadm acl get -A "Public/general" Username ID Global Rights user1@domain.com user=user1@domain.com global admin create delete expunge insert lookup post read write write-deleted write-seen user2@domain2.com user=user1@domain.com global admin create delete expunge insert lookup post read write write-deleted write-seen user2@domain.com user=user1@domain.com global admin create delete expunge insert lookup post read write write-deleted write-seen
#doveadm acl get -A "Public/TestFolder" Username ID Global Rights
Here's my ls output: #ls -l /var/vmail/public total 16 drwx------ 5 vmail vmail 512 Apr 25 13:56 TestFolder/ -rw------- 1 vmail vmail 0 Apr 25 13:43 dovecot-acl-list -rw------- 1 vmail vmail 8 Apr 25 13:47 dovecot-uidvalidity -r--r--r-- 1 vmail vmail 0 Apr 25 13:47 dovecot-uidvalidity.5ea477b0 -rw------- 1 vmail vmail 804 Apr 25 13:59 dovecot.list.index.log drwx------ 5 vmail vmail 512 Apr 25 13:47 general/
Thanks. Dave.
#doveconf -n # 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: FreeBSD 12.1-RELEASE-p3 amd64 # Hostname: hostname@domain.com auth_cache_size = 10 M auth_default_realm = domain.com auth_mechanisms = plain login auth_realms = domain.com dict { lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf } first_valid_gid = 2100 first_valid_uid = 2100 hostname = hostname.domain.com imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags imap_idle_notify_interval = 1 mins last_valid_gid = 2100 last_valid_uid = 2100 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To listen = xxx.xxx.xxx.xxx lmtp_rcpt_check_quota = yes log_timestamp = "%Y-%m-%d %H:%M:%S " mail_access_groups = vmail mail_fsync = never mail_gid = vmail mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt mail_privileged_group = vmail mail_server_admin = mailto:postmaster@domain.com mail_uid = vmail 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 spamtest spamtestplus virustest editheader imapflags notify imapsieve vnd.dovecot.imapsieve namespace { list = children location = maildir:/var/vmail/public:LAYOUT=fs mailbox TestFolder { auto = subscribe comment = Public Folder } mailbox general { auto = subscribe comment = Public Folder for message sharing } prefix = Public/ separator = / subscriptions = yes type = public } namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe 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 fts = lucene fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \Spam fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball 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 = * last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it mail_crypt_curve = prime256v1 mail_crypt_global_private_key = # hidden, use -P to show it mail_crypt_global_public_key = # hidden, use -P to show it mail_crypt_save_version = 2 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = count:User quota quota_exceeded_message = Storage quota for this account has been exceeded, please try again later. quota_grace = 10%% quota_rule2 = Trash:ignore 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 = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve sieve_before = /var/vmail/sieve/global/spam-global.sieve sieve_extensions = +notify +imapflags +spamtest +spamtestplus +virustest +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute +vnd.dovecot.environment 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_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ \[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ \[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] sieve_spamtest_status_type = score sieve_user_log = /var/vmail/sieve/sieve_error.log sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. sieve_virustest_status_type = text sieve_virustest_text_value1 = clean sieve_virustest_text_value5 = infected trash = /usr/local/etc/dovecot/trash.conf welcome_script = welcome %n postmaster@%d welcome_wait = yes } postmaster_address = postmaster@domain.com protocols = imap lmtp sieve sendmail_path = /usr/local/sbin/sendmail service auth-worker { user = vmail } 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 { mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 143 } process_min_avail = 1 } service imap { executable = imap } service lmtp { executable = lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { address = xxx.xxx.xxx.xxx 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 stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } service welcome { executable = script /usr/local/etc/dovecot/welcome.sh unix_listener welcome { user = vmail } user = vmail } ssl = required ssl_cert =
On 4/25/20, Christian Kivalo ml+dovecot@valo.at wrote:
On April 25, 2020 2:35:20 AM GMT+02:00, David Mehler dave.mehler@gmail.com wrote:
Hello,
I'm trying to set up a public folder called TestFolder. I'm getting this error:
#doveadm acl get -A "Public/TestFolder" doveadm(username@example.com): Error: Can't open mailbox Public/TestFolder: Mailbox doesn't exist: Public/TestFolder Username ID Global Rights
Have you enabled debug log and what does it show when you run this command?
# ls -ld /var/vmail/public drwx------ 4 vmail vmail 512 Apr 15 23:17 public/
# ls -ld public/.TestFolder drwx------ 5 vmail vmail 512 Apr 15 23:20 .TestFolder/
My goal is a public namespace under which I have several folders for internal communications that users can access, TestFolder being an example.
Suggestions welcome. Thanks. Dave.
#doveconf -n # 2.3.10 (0da0eff44): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: FreeBSD 12.1-RELEASE-p3 amd64 # Hostname: mail.example.com auth_cache_size = 10 M auth_default_realm = example.com auth_mechanisms = plain login auth_realms = example.com dict { lastlogin = mysql:/usr/local/etc/dovecot/dovecot-last-login.conf } first_valid_gid = 2100 first_valid_uid = 2100 hostname = mail.example.com imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags imap_idle_notify_interval = 1 mins last_valid_gid = 2100 last_valid_uid = 2100 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To listen = xxx.xxx.xxx.xxx lmtp_rcpt_check_quota = yes log_timestamp = "%Y-%m-%d %H:%M:%S " mail_access_groups = vmail mail_fsync = never mail_gid = vmail mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail mail_plugins = acl fts fts_lucene mail_log notify quota trash virtual welcome zlib mail_crypt mail_privileged_group = vmail mail_server_admin = mailto:postmaster@example.com mail_uid = vmail 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 spamtest spamtestplus virustest editheader imapflags notify imapsieve vnd.dovecot.imapsieve namespace { location = sdbox:/var/vmail/public/:CONTROL=~/mail/public:INDEX=~/mail/public:INDEXPVT=~/mail/public prefix = Public/ separator = / subscriptions = yes type = public } namespace { hidden = no list = yes location = maildir:/var/vmail/shared/office/.Maildir:CONTROL=~/.Maildir/control/office:INDEX=~/.Maildir/index/office prefix = shared/%%u/ separator = / subscriptions = yes type = shared } namespace inbox { inbox = yes location = mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe 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 fts = lucene fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \Spam fts_autoindex_max_recent_msgs = 80 fts_index_timeout = 90 fts_lucene = whitespace_chars=@. normalize no_snowball 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 = * last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it mail_crypt_curve = prime256v1 mail_crypt_global_private_key = # hidden, use -P to show it mail_crypt_global_public_key = # hidden, use -P to show it mail_crypt_save_version = 2 mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = count:User quota quota_exceeded_message = Storage quota for this account has been exceeded, please try again later. quota_grace = 10%% quota_rule2 = Trash:ignore 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 = file:/var/vmail/sieve/%d/%n/scripts;active=/var/vmail/sieve/%d/%n/active-script.sieve sieve_before = /var/vmail/sieve/global/spam-global.sieve sieve_extensions = +notify +imapflags +spamtest +spamtestplus +virustest +editheader sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.execute +vnd.dovecot.environment 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_spamtest_max_header = X-Spamd-Result: default: [[:alnum:]]+ \[-?[[:digit:]]+\.[[:digit:]]+ / (-?[[:digit:]]+\.[[:digit:]]+)\] sieve_spamtest_status_header = X-Spamd-Result: default: [[:alnum:]]+ \[(-?[[:digit:]]+\.[[:digit:]]+) / -?[[:digit:]]+\.[[:digit:]]+\] sieve_spamtest_status_type = score sieve_user_log = /var/vmail/sieve/sieve_error.log sieve_virustest_status_header = X-Virus-Scan: Found to be (.+)\. sieve_virustest_status_type = text sieve_virustest_text_value1 = clean sieve_virustest_text_value5 = infected trash = /usr/local/etc/dovecot/trash.conf welcome_script = welcome %n postmaster@%d welcome_wait = yes } postmaster_address = postmaster@example.com protocols = imap lmtp sieve sendmail_path = /usr/local/sbin/sendmail service auth-worker { user = vmail } 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 { mode = 0600 user = vmail } user = root } service imap-login { inet_listener imap { port = 143 } process_min_avail = 1 } service imap { executable = imap } service lmtp { executable = lmtp unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { address = 172.16.21.3 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 stats { unix_listener stats-reader { group = vmail mode = 0660 user = vmail } unix_listener stats-writer { group = vmail mode = 0660 user = vmail } } service welcome { executable = script /usr/local/etc/dovecot/welcome.sh unix_listener welcome { user = vmail } user = vmail } ssl = required ssl_cert =
mail_home = /var/vmail/mailboxes/%d/%n mail_location = dbox:~/mail
-- Christian Kivalo
Hi David,
On 25.04.20 21:23, David Mehler wrote:
I've added a mailbox to the namespace definition for the public folders. I can do a doveadm acl get -A "Public/general" works but "Public/TestFolder" does not.
did you already used something like this on your server?:
# doveadm acl set -A "Public/..."
or how did you set the ACLs?
And:
Here's my ls output: #ls -l /var/vmail/public total 16 drwx------ 5 vmail vmail 512 Apr 25 13:56 TestFolder/ -rw------- 1 vmail vmail 0 Apr 25 13:43 dovecot-acl-list -rw------- 1 vmail vmail 8 Apr 25 13:47 dovecot-uidvalidity -r--r--r-- 1 vmail vmail 0 Apr 25 13:47 dovecot-uidvalidity.5ea477b0 -rw------- 1 vmail vmail 804 Apr 25 13:59 dovecot.list.index.log drwx------ 5 vmail vmail 512 Apr 25 13:47 general/
could you please also show the output of:
# ls -la /var/vmail/public/TestFolder
and
# ls -la /var/vmail/public/general
Thanks and regards, Markus
Hello,
Thank you for your response. In answer to your questions I made a file global-acls containing:
# cat global-acls Public/general user=user1@domain.com lrwstipekxa Public/TestFolder user=user1@domain.com lrwstipekxa
Public/general user=user1@domain2.com lrwstipekxa Public/TestFolder user=user1@domain2.com lrwstipekxa
Here's the ls -la output:
#ls -la /var/vmail/public/TestFolder/ total 28 drwx------ 5 vmail vmail 512 Apr 26 10:09 ./ drwx------ 4 vmail vmail 512 Apr 26 10:09 ../ drwx------ 2 vmail vmail 512 Apr 25 13:55 cur/ -rw------- 1 vmail vmail 51 Apr 26 10:09 dovecot-uidlist -rw------- 1 vmail vmail 232 Apr 26 10:09 dovecot.index.log drwx------ 2 vmail vmail 512 Apr 25 13:55 new/ drwx------ 2 vmail vmail 512 Apr 25 13:55 tmp/
#ls -la /var/vmail/public/general/ total 28 drwx------ 5 vmail vmail 512 Apr 25 13:47 ./ drwx------ 4 vmail vmail 512 Apr 26 10:09 ../ drwx------ 2 vmail vmail 512 Apr 25 13:42 cur/ -rw------- 1 vmail vmail 51 Apr 25 13:47 dovecot-uidlist -rw------- 1 vmail vmail 232 Apr 25 13:47 dovecot.index.log drwx------ 2 vmail vmail 512 Apr 25 13:42 new/ drwx------ 2 vmail vmail 512 Apr 25 13:42 tmp/
Thanks. Dave.
On 4/26/20, Markus Winkler ml@irmawi.de wrote:
Hi David,
On 25.04.20 21:23, David Mehler wrote:
I've added a mailbox to the namespace definition for the public folders. I can do a doveadm acl get -A "Public/general" works but "Public/TestFolder" does not.
did you already used something like this on your server?:
# doveadm acl set -A "Public/..."
or how did you set the ACLs?
And:
Here's my ls output: #ls -l /var/vmail/public total 16 drwx------ 5 vmail vmail 512 Apr 25 13:56 TestFolder/ -rw------- 1 vmail vmail 0 Apr 25 13:43 dovecot-acl-list -rw------- 1 vmail vmail 8 Apr 25 13:47 dovecot-uidvalidity -r--r--r-- 1 vmail vmail 0 Apr 25 13:47 dovecot-uidvalidity.5ea477b0 -rw------- 1 vmail vmail 804 Apr 25 13:59 dovecot.list.index.log drwx------ 5 vmail vmail 512 Apr 25 13:47 general/
could you please also show the output of:
# ls -la /var/vmail/public/TestFolder
and
# ls -la /var/vmail/public/general
Thanks and regards, Markus
Hi Dave,
thanks for the information.
On 26.04.20 18:37, David Mehler wrote:
In answer to your questions I made a file global-acls containing:
It's the '/usr/local/etc/dovecot/global-acls', right?
# cat global-acls Public/general user=user1@domain.com lrwstipekxa Public/TestFolder user=user1@domain.com lrwstipekxa
Public/general user=user1@domain2.com lrwstipekxa Public/TestFolder user=user1@domain2.com lrwstipekxa
Just to be sure: when did you create this file and it's content: before you reported (i.e. yesterday) the results of 'doveadm acl get -A "Public/general"' and 'doveadm acl get -A "Public/TestFolder"' or only today before you wrote this mail? In the latter case: did this change the output of 'doveadm acl get -A ...'
To me this file looks OK and so the ACLs should be reported and working correctly ...
And an additional question: the users user1@domain.com and user1@domain2.com are generally able to login, use their own Inbox etc. without any problem?
Regards, Markus
Hello,
Thanks, yes the global-acls file is the one I'm refering to and I created it before all this started.
Yes, the users can both login properly and can access there own inboxes.
Thanks. Dave.
On 4/26/20, Markus Winkler ml@irmawi.de wrote:
Hi Dave,
thanks for the information.
On 26.04.20 18:37, David Mehler wrote:
In answer to your questions I made a file global-acls containing:
It's the '/usr/local/etc/dovecot/global-acls', right?
# cat global-acls Public/general user=user1@domain.com lrwstipekxa Public/TestFolder user=user1@domain.com lrwstipekxa
Public/general user=user1@domain2.com lrwstipekxa Public/TestFolder user=user1@domain2.com lrwstipekxa
Just to be sure: when did you create this file and it's content: before you
reported (i.e. yesterday) the results of 'doveadm acl get -A "Public/general"' and 'doveadm acl get -A "Public/TestFolder"' or only today before you wrote this mail? In the latter case: did this change the output of 'doveadm acl get -A ...'
To me this file looks OK and so the ACLs should be reported and working correctly ...
And an additional question: the users user1@domain.com and user1@domain2.com are generally able to login, use their own Inbox etc. without any problem?
Regards, Markus
Hi Dave,
thanks for the information.
On 27.04.20 21:30, David Mehler wrote:
Thanks, yes the global-acls file is the one I'm refering to and I created it before all this started.
Yes, the users can both login properly and can access there own inboxes.
I must admit I've run out of ideas.
Just as a test you could try the following:
(1) In your Dovecot config change this:
plugin { acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300
to:
plugin { acl = vfile
(2) In this folder:
/var/vmail/public
- create a file 'dovecot-acl' with content like this:
authenticated lrs user=user1@domain.com lrwstipekxa user=user1@domain2.com lrwstipekxa
chown vmail:vmail dovecot-acl
as 'TestFolder' and 'general' already exist (and therefore no inheritance), copy 'dovecot-acl' to these two folders
delete /var/vmail/public/dovecot-acl-list
(3) restart Dovecot
Please check, if these modifications changed the behaviour.
Regards, Markus
participants (5)
-
Christian Kivalo
-
David Mehler
-
Mark Constable
-
Mark Constable
-
Markus Winkler