dovecot 2.3.11.3 namespace/ACL shared folder not accessible in sharing-user's Mail folder tree? have a working config?

PGNet Dev pgnet.dev at gmail.com
Wed Oct 7 06:57:23 EEST 2020


I'm running

	dovecot --version
		2.3.11.3 (502c39af9)

I'm setting up folder sharing.

Following

	https://wiki.dovecot.org/SharedMailboxes/Shared

I've configured a folder to be shared, but it's not seen/accessible in the target user's Mail folder tree.

My config includes,

	mail_plugins = virtual acl
	protocol imap {
		mail_plugins = $mail_plugins imap_acl imap_quota mail_log notify quota imap_sieve
		...
	}
	imap_capability = +SPECIAL-USE
	namespace inbox {
		inbox = yes
		type = private
		separator = /
		prefix =
		hidden = no
		list = yes
		subscriptions = yes
		...
	}
	namespace shared {
		type = shared
		separator = /
		prefix = shared/%%u/
		location = maildir:/srv/vmail/%%d/%%n/Maildir:INDEXPVT=/var/vmail-index/shared/%%u
		hidden = no
		list = yes
		subscriptions = yes
	}
	plugin {
		acl_globals_only = no
		acl = vfile
		acl = vfile:/etc/dovecot/dovecot-acl
		acl_shared_dict = file:/srv/vmail/%d/shared-mailboxes.db
	}

I've two users

	user1 at example.com
	user2 at example.com

I've shared a folder, 'SHARED' (containing files & subfolders), from user1 at example.com's folder hierarchy to user2 at example.com,

	doveadm acl set -u user1 at example.com SHARED user=user2 at example.com lookup read write write-seen write-deleted insert create

checking

	cat /srv/vmail/virtual/dovecot-acl-list
		(empty)
	cat /srv/vmail/example.com/user2/Maildir/dovecot-acl-list
		(empty)
	cat /srv/vmail/example.com/user1/Maildir/SHARED/dovecot-acl
		user=user2 at example.com kilrwts
	cat /srv/vmail/example.com/user1/Maildir/dovecot-acl-list
		1602040901 SHARED

Logging into Roundcube as

	User: user2 at example.com

I do NOT see the 'shared' folder in the Mail window.

If I nav to Settings -> Folders,  I *DO* see the 'shared' folder, but it's unchecked -- and there are no subfolders  displayed beneath it.

on-click of the 'shared' folder, in dovecot logs:

	2020-10-06 20:31:27 imap-login: Info: Login: user=<user2 at example.com>, method=PLAIN, rip=10.0.1.50, lip=10.0.1.50, mpid=7673, TLS

	==> /var/log/dovecot/dovecot-debug.log <==
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Loading modules from directory: /usr/lib64/dovecot
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib01_acl_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib02_imap_acl_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib11_imap_quota_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib15_notify_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib20_mail_log_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib20_virtual_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib95_imap_sieve_plugin.so
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Added userdb setting: plugin/quota=dirsize:storage=10240000
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Effective uid=5000, gid=5000, home=/srv/vmail/example.com/user2/Maildir
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota root: name=storage=10240000 backend=dirsize args=
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=* bytes=10737418240 messages=0
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Trash bytes=+1073741824 (10%) messages=0
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Junk ignored
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10737418240 (100%) messages=0 reverse=no command=quota-warning 100 user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10200547328 (95%) messages=0 reverse=no command=quota-warning 95 user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9663676416 (90%) messages=0 reverse=no command=quota-warning 90 user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9126805504 (85%) messages=0 reverse=no command=quota-warning 85 user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota grace: root=storage=10240000 bytes=52428800
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Namespace inbox: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/srv/vmail/example.com/user2/Maildir:CONTROL=/srv/vmail/example.com/user2/_control:INDEX=/var/vmail-index/example.com/user2:LAYOUT=fs:UTF-8
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: fs: root=/srv/vmail/example.com/user2/Maildir, index=/var/vmail-index/example.com/user2, indexpvt=, control=/srv/vmail/example.com/user2/_control, inbox=/srv/vmail/example.com/user2/Maildir, alt=
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: initializing backend with data: vfile:/home/vmail/conf.d/example.com/acls:cache_secs=300
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 1
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: Global ACL legacy directory: /home/vmail/conf.d/example.com/acls
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Namespace shared: type=shared, prefix=shared/%u/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=no location=maildir:/srv/vmail/%d/%n/Maildir:INDEXPVT=/var/vmail-index/shared/%u
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: shared: root=/run/dovecot/, index=, indexpvt=, control=, inbox=, alt=
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: initializing backend with data: vfile:/home/vmail/conf.d/example.com/acls:cache_secs=300
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 0
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: Global ACL legacy directory: /home/vmail/conf.d/example.com/acls
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Namespace virtual: type=private, prefix=virtual/, sep=/, inbox=no, hidden=no, list=yes, subscriptions=yes location=virtual:/srv/vmail/virtual:INDEX=MEMORY
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: fs: root=/srv/vmail/virtual, index=, indexpvt=, control=, inbox=, alt=
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: initializing backend with data: vfile:/home/vmail/conf.d/example.com/acls:cache_secs=300
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 1
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: Global ACL legacy directory: /home/vmail/conf.d/example.com/acls
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/ not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/Drafts not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /srv/vmail/example.com/user2/Maildir/Drafts/dovecot-acl not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/Sent not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /srv/vmail/example.com/user2/Maildir/Sent/dovecot-acl not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/Junk not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /srv/vmail/example.com/user2/Maildir/Junk/dovecot-acl not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/Trash not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /srv/vmail/example.com/user2/Maildir/Trash/dovecot-acl not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota root: name=storage=10240000 backend=dirsize args=
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=* bytes=10737418240 messages=0
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Trash bytes=+1073741824 (10%) messages=0
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Junk ignored
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10737418240 (100%) messages=0 reverse=no command=quota-warning 100 user1 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10200547328 (95%) messages=0 reverse=no command=quota-warning 95 user1 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9663676416 (90%) messages=0 reverse=no command=quota-warning 90 user1 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9126805504 (85%) messages=0 reverse=no command=quota-warning 85 user1 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Quota grace: root=storage=10240000 bytes=52428800
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: maildir++: root=/srv/vmail/example.com/user1/Maildir, index=, indexpvt=/var/vmail-index/shared/user1 at example.com, control=, inbox=/srv/vmail/example.com/user1/Maildir, alt=
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: initializing backend with data: vfile:/home/vmail/conf.d/example.com/acls:cache_secs=300
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user1 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 1
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: Global ACL legacy directory: /home/vmail/conf.d/example.com/acls
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: maildir++: root=/srv/vmail/example.com/user1/Maildir, index=, indexpvt=/var/vmail-index/shared/user1 at example.com, control=, inbox=/srv/vmail/example.com/user1/Maildir, alt=
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: initializing backend with data: vfile:/home/vmail/conf.d/example.com/acls:cache_secs=300
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 0
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: Global ACL legacy directory: /home/vmail/conf.d/example.com/acls
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/ not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/shared/user1 at example.com not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /srv/vmail/example.com/user1/Maildir/dovecot-acl not found
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl: No lookup right to mailbox: shared/user1 at example.com
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: Namespace shared/: Using permissions from : mode=0700 gid=default
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/ not found

	==> /var/log/dovecot/dovecot-info.log <==
	2020-10-06 20:31:27 imap(user2 at example.com)<6m3LWQyx8LesHgsy>: Info: Logged out in=84 out=732 deleted=0 expunged=0 trashed=0 hdr_count=0 hdr_bytes=0 body_count=0 body_bytes=0

NO "error", simply no view of 'SHARED', or the files/folder in it, seen under 'shared' in @ user2's account.


What's missing/incorrect about that^ config, in order to see/access the shared folder, 'SHARED' in @ user2's account ?

If you have a working config, please share.


More information about the dovecot mailing list