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@example.com
user2@example.com
I've shared a folder, 'SHARED' (containing files & subfolders), from user1@example.com's folder hierarchy to user2@example.com,
doveadm acl set -u user1@example.com SHARED user=user2@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@example.com kilrwts
cat /srv/vmail/example.com/user1/Maildir/dovecot-acl-list
1602040901 SHARED
Logging into Roundcube as
User: user2@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@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@example.com)<6m3LWQyx8LesHgsy>: Debug: Loading modules from directory: /usr/lib64/dovecot
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib01_acl_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib02_imap_acl_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib10_quota_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib11_imap_quota_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib15_notify_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib20_mail_log_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib20_virtual_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Module loaded: /usr/lib64/dovecot/lib95_imap_sieve_plugin.so
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Added userdb setting: plugin/quota=dirsize:storage=10240000
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Effective uid=5000, gid=5000, home=/srv/vmail/example.com/user2/Maildir
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota root: name=storage=10240000 backend=dirsize args=
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=* bytes=10737418240 messages=0
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Trash bytes=+1073741824 (10%) messages=0
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Junk ignored
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10737418240 (100%) messages=0 reverse=no command=quota-warning 100 user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10200547328 (95%) messages=0 reverse=no command=quota-warning 95 user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9663676416 (90%) messages=0 reverse=no command=quota-warning 90 user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9126805504 (85%) messages=0 reverse=no command=quota-warning 85 user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota grace: root=storage=10240000 bytes=52428800
2020-10-06 20:31:27 imap(user2@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@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@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@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 1
2020-10-06 20:31:27 imap(user2@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@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@example.com)<6m3LWQyx8LesHgsy>: Debug: shared: root=/run/dovecot/, index=, indexpvt=, control=, inbox=, alt=
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 0
2020-10-06 20:31:27 imap(user2@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@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@example.com)<6m3LWQyx8LesHgsy>: Debug: fs: root=/srv/vmail/virtual, index=, indexpvt=, control=, inbox=, alt=
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 1
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/ not found
2020-10-06 20:31:27 imap(user2@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@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@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@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@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@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@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@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@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota root: name=storage=10240000 backend=dirsize args=
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=* bytes=10737418240 messages=0
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Trash bytes=+1073741824 (10%) messages=0
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota rule: root=storage=10240000 mailbox=Junk ignored
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10737418240 (100%) messages=0 reverse=no command=quota-warning 100 user1@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=10200547328 (95%) messages=0 reverse=no command=quota-warning 95 user1@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9663676416 (90%) messages=0 reverse=no command=quota-warning 90 user1@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota warning: bytes=9126805504 (85%) messages=0 reverse=no command=quota-warning 85 user1@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Quota grace: root=storage=10240000 bytes=52428800
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: maildir++: root=/srv/vmail/example.com/user1/Maildir, index=, indexpvt=/var/vmail-index/shared/user1@example.com, control=, inbox=/srv/vmail/example.com/user1/Maildir, alt=
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user1@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 1
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: maildir++: root=/srv/vmail/example.com/user1/Maildir, index=, indexpvt=/var/vmail-index/shared/user1@example.com, control=, inbox=/srv/vmail/example.com/user1/Maildir, alt=
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: acl username = user2@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: owner = 0
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/ not found
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: acl vfile: file /home/vmail/conf.d/example.com/acls/shared/user1@example.com not found
2020-10-06 20:31:27 imap(user2@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@example.com)<6m3LWQyx8LesHgsy>: Debug: acl: No lookup right to mailbox: shared/user1@example.com
2020-10-06 20:31:27 imap(user2@example.com)<6m3LWQyx8LesHgsy>: Debug: Namespace shared/: Using permissions from : mode=0700 gid=default
2020-10-06 20:31:27 imap(user2@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@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.