[Dovecot] Impossible to share INBOX with other users
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello,
i am currently testing Dovecot 2.0 rc3 with Maildir format, and it seems _again_ impossible to share the Inbox of one user with another user.
user1 shares Inbox with user2
user2 makes List command: 1 login user2 password
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk 1 OK You are so in 2 list "" "*"
- LIST (\HasNoChildren) "/" "Sent"
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "Drafts"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user1"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user1/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user1/INBOX/unterInbox"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user1/testordner"
- LIST (\HasChildren) "/" "FremdeOrdner/user1/INBOX"
2 OK List completed.
The Problem is the following line:
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user1/INBOX" which causes Thunderbird NOT to subscribe and ignore INBOX of user1.
There is no difference, if the shared INBOX has any subfolders.
Any Ideas on how to solve this?
Regards, Daniel Stoye -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkxZPmUACgkQwloC3PARqmhhQACeKOa3g9ec2G25uqYVpkp8sVlc zNYAnR6IU376m8JF2PkaXwvK7qsjC6I/ =u+IR -----END PGP SIGNATURE-----
On Wed, 2010-08-04 at 12:18 +0200, Daniel Stoye wrote:
The Problem is the following line:
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user1/INBOX" which causes Thunderbird NOT to subscribe and ignore INBOX of user1.
Yes.
There is no difference, if the shared INBOX has any subfolders.
You mean if INBOX doesn't have any shared subfolders?
Anyway, I couldn't reproduce this. What's your dovecot -n output now? What's the minimal sharing setup you can reproduce this with? (User foo sees shared mailboxes -> SETACL INBOX foo +lr -> foo now sees \Noselect shared INBOX?)
On Wed, 2010-08-04 at 17:40 +0100, Timo Sirainen wrote:
Anyway, I couldn't reproduce this. What's your dovecot -n output now? What's the minimal sharing setup you can reproduce this with? (User foo sees shared mailboxes
Uh. "User foo sees NO shared mailboxes"
-> SETACL INBOX foo +lr -> foo now sees \Noselect shared INBOX?)
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 08/04/10 18:45, Timo Sirainen wrote:
On Wed, 2010-08-04 at 17:40 +0100, Timo Sirainen wrote:
Anyway, I couldn't reproduce this. What's your dovecot -n output now? What's the minimal sharing setup you can reproduce this with? (User foo sees shared mailboxes
Uh. "User foo sees NO shared mailboxes"
-> SETACL INBOX foo +lr -> foo now sees \Noselect shared INBOX?)
Hi,
i still have a problem, regarding thunderbird 3.1.2 and dovecot rc4, i don't know if this behavior is wanted, but the lsub command seems to be the cause of my problems:
user2:
1 login user2 passOfUser2
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk 1 OK You are so in 1 list "" "*"
- LIST (\HasNoChildren) "/" "Sent"
- LIST (\HasNoChildren) "/" "Drafts"
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "AutoCleanSpam"
- LIST (\HasNoChildren) "/" "INBOX" 1 OK List completed. 1 setacl inbox user1 ilrws 1 OK Setacl complete. 1 getacl inbox
- ACL "inbox" "user1" ilrws "user2" lrwstipekxacd 1 OK Getacl completed. 1 getacl drafts
- ACL "drafts" "user2" lrwstipekxacd 1 OK Getacl completed. 1 setacl drafts user1 ilrws 1 NO Internal error occurred. Refer to server log for more information. 1 setacl Drafts user1 ilrws 1 OK Setacl complete. 1 logout
- BYE Logging out 1 OK Logout completed. read:errno=0
user1:
1 login user1 passOfUser1
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk 1 OK You are so in 1 list "" "*"
- LIST (\HasNoChildren) "/" "Drafts"
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "Sent"
- LIST (\HasNoChildren) "/" "AutoCleanSpam"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/INBOX" 1 OK List completed. 2 lsub "" "*"
- LSUB () "/" "AutoCleanSpam"
- LSUB () "/" "Trash"
- LSUB () "/" "Sent"
- LSUB () "/" "Drafts"
- LSUB () "/" "INBOX"
- LSUB () "/" "FremdeOrdner/user2/Drafts" 2 OK Lsub completed. 3 myrights "FremdeOrdner/user2/INBOX"
- MYRIGHTS "FremdeOrdner/user2/INBOX" lrwsi 3 OK Myrights completed. 4 list "FremdeOrdner/user2/INBOX" "*" 4 OK List completed. 5 status "FremdeOrdner/user2/INBOX" (UIDNEXT MESSAGES UNSEEN RECENT)
- STATUS "FremdeOrdner/user2/INBOX" (MESSAGES 1 RECENT 1 UIDNEXT 2 UNSEEN 1) 5 OK Status completed. 6 logout
- BYE Logging out 6 OK Logout completed. read:errno=0
The dovecot config: mail_access_groups: sysdov mail_privileged_group: sysdov mail_uid: sysdov mail_gid: sysdov mail_location: dbox:~/dbox:INDEX=/addons/index/%u:CONTROL=~/control:LAYOUT=fs mail_plugins: autocreate expire acl imap_acl namespace: type: private separator: / inbox: yes list: yes subscriptions: yes namespace: type: shared separator: / prefix: FremdeOrdner/%%u/ location: dbox:%%h/dbox:CONTROL=~/control/FremdeOrdner/%%u:LAYOUT=fs list: yes plugin: ... acl_shared_dict: file:/addons/acl/shared-folder
The second thing with the Drafts folder is not important to me, but the explanation is:
LOG: Aug 09 13:20:09 imap(user2): Error: file_dotlock_open(/home/u/user2/maildir/drafts/dovecot-acl) failed: No such file or directory
But:
root@mail: cat /home/u/user2/maildir/Drafts/dovecot-acl user=user1 ilrws
It seems, that only on the Drafts-folder, the folder name is case sensitive:
1 getacl Drafts
- ACL "Drafts" "user1" ilrws "user2" lrwstipekxacd 1 OK Getacl completed. 1 getacl drafts
- ACL "drafts" "user2" lrwstipekxacd 1 OK Getacl completed. 1 getacl inbox
- ACL "inbox" "user1" ilrws "user2" lrwstipekxacd 1 OK Getacl completed. 1 getacl INBOX
- ACL "INBOX" "user1" ilrws "user2" lrwstipekxacd 1 OK Getacl completed. 1 getacl Inbox
- ACL "Inbox" "user1" ilrws "user2" lrwstipekxacd 1 OK Getacl completed.
Any help would be appreciated.
Regards, Daniel
-----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkxf6xwACgkQwloC3PARqmgHpACgrxNSFaVlgdTMZaSlKFIGmOim E4kAoIRFz2Yy0cQccM3y3On+aNNqgYEY =XhWE -----END PGP SIGNATURE-----
On Mon, 2010-08-09 at 13:48 +0200, Daniel Stoye wrote:
1 getacl drafts
- ACL "drafts" "user2" lrwstipekxacd 1 OK Getacl completed. 1 setacl drafts user1 ilrws 1 NO Internal error occurred. Refer to server log for more information.
Both of the above should have said:
x NO Mailbox doesn't exist: drafts
Fixed now: http://hg.dovecot.org/dovecot-2.0/rev/8814ced6d012
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/INBOX"
These all look ok. INBOX exists, is selectable.
2 lsub "" "*"
- LSUB () "/" "FremdeOrdner/user2/Drafts" 2 OK Lsub completed.
So the shared mailbox simply isn't subscribed to. Subscriptions aren't added automatically. So there is no bug here.
4 list "FremdeOrdner/user2/INBOX" "*" 4 OK List completed.
user1's LIST didn't show any (especially shared) mailboxes under INBOX, so this looks OK too.
5 status "FremdeOrdner/user2/INBOX" (UIDNEXT MESSAGES UNSEEN RECENT)
- STATUS "FremdeOrdner/user2/INBOX" (MESSAGES 1 RECENT 1 UIDNEXT 2 UNSEEN 1) 5 OK Status completed.
Looks ok.
mail_location: dbox:~/dbox:INDEX=/addons/index/%u:CONTROL=~/control:LAYOUT=fs
:LAYOUT=fs is unnecessary with dbox, since it's the default. Also why are you separating control directory? dbox uses very few control files and I don't much see point in doing that.
It seems, that only on the Drafts-folder, the folder name is case sensitive:
No, it's the other way around: Only INBOX is case-insensitive.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Hello,
On 08/09/10 17:15, Timo Sirainen wrote:
On Mon, 2010-08-09 at 13:48 +0200, Daniel Stoye wrote:
1 getacl drafts
- ACL "drafts" "user2" lrwstipekxacd 1 OK Getacl completed. 1 setacl drafts user1 ilrws 1 NO Internal error occurred. Refer to server log for more information.
Both of the above should have said:
x NO Mailbox doesn't exist: drafts
Fixed now: http://hg.dovecot.org/dovecot-2.0/rev/8814ced6d012
thank you.
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/INBOX"
These all look ok. INBOX exists, is selectable.
2 lsub "" "*"
- LSUB () "/" "FremdeOrdner/user2/Drafts" 2 OK Lsub completed.
So the shared mailbox simply isn't subscribed to. Subscriptions aren't added automatically. So there is no bug here.
Yes, i thought i was subscribed, but i weren't, sorry.
4 list "FremdeOrdner/user2/INBOX" "*" 4 OK List completed.
user1's LIST didn't show any (especially shared) mailboxes under INBOX, so this looks OK too.
5 status "FremdeOrdner/user2/INBOX" (UIDNEXT MESSAGES UNSEEN RECENT)
- STATUS "FremdeOrdner/user2/INBOX" (MESSAGES 1 RECENT 1 UIDNEXT 2 UNSEEN 1) 5 OK Status completed.
Looks ok.
mail_location: dbox:~/dbox:INDEX=/addons/index/%u:CONTROL=~/control:LAYOUT=fs
:LAYOUT=fs is unnecessary with dbox, since it's the default. Also why are you separating control directory? dbox uses very few control files and I don't much see point in doing that.
It seems, that only on the Drafts-folder, the folder name is case sensitive:
No, it's the other way around: Only INBOX is case-insensitive.
Thanks, i understood that now and it makes sense.
So, i debugged thunderbird today, and it seems, that the list command it is using doesn't return the Inbox: I don't know of the behaviour of the "%" sign in imap commands, maybe it's a thunderbird bug, i don't know. Any help would be appreciated, so i can write a bugreport for thunderbird.
1 login user1 passOfUser1
- CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS ACL RIGHTS=texk 1 OK You are so in 1 list "" "*"
- LIST (\HasNoChildren) "/" "Drafts"
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "Junk"
- LIST (\HasNoChildren) "/" "Sent"
- LIST (\HasNoChildren) "/" "AutoCleanSpam"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user3"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user3/INBOX" 1 OK List completed. 2 list "" "FremdeOrdner/%"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user3" 2 OK List completed. 3 list "" "FremdeOrdner/%/%"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts" 3 OK List completed. 4 logout
- BYE Logging out 4 OK Logout completed. read:errno=0
Thank you for your help,
Daniel -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkxhAScACgkQwloC3PARqmirOQCeJikhWYi7lzIZbwPzEkVIwR+b zJkAnAjuMz/jQm4rrP5f/FrnTwrsuYmP =H1s4 -----END PGP SIGNATURE-----
On Tue, 2010-08-10 at 09:35 +0200, Daniel Stoye wrote:
1 list "" "*" ..
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user3/INBOX"
INBOXes get listed..
2 list "" "FremdeOrdner/%"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user3" 2 OK List completed.
Users get listed ok..
3 list "" "FremdeOrdner/%/%"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts" 3 OK List completed.
The INBOXes should have been listed here. I tried and it works fine with me:
1 list "" "*" ..
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/t.s"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/tss2"
- LIST (\HasNoChildren) "/" "FremdeOrdner/t.s/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/INBOX" 1 OK List completed. 2 list "" "FremdeOrdner/%"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/t.s"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/tss2" 2 OK List completed. 3 list "" "FremdeOrdner/%/%"
- LIST (\HasNoChildren) "/" "FremdeOrdner/t.s/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/INBOX" 3 OK List completed.
Also from your previous mail:
The dovecot config: mail_access_groups: sysdov mail_privileged_group: sysdov
These two above are unnecessary, because you already have mail_gid=sysdov.
mail_uid: sysdov mail_gid: sysdov
But this whole output is from Dovecot v1.x's dovecot -n output. Are you really using v2.0 or v1.2?
Hi, In behalf of my colleague Daniel I will give additional information.
On 10.08.2010 16:09, Timo Sirainen wrote:
On Tue, 2010-08-10 at 09:35 +0200, Daniel Stoye wrote:
1 list "" "*" ..
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user3/INBOX"
INBOXes get listed..
2 list "" "FremdeOrdner/%"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user3" 2 OK List completed.
Users get listed ok..
3 list "" "FremdeOrdner/%/%"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts" 3 OK List completed.
The INBOXes should have been listed here. I tried and it works fine with me:
Sorry, we have this problem here.
~user2/maildir/dovecot-acl-list: 1281351959 Drafts 1281352773 INBOX
~user2/maildir/Drafts/dovecot-acl: user=user1 ilrws and ~user2/maildir/dovecot-acl: user=user1 ilrws
Did I understand you right "~user2/maildir" is the INBOX and so ~user2/maildir/dovecot-acl holds the rights of other users to the INBOX?
user1: 1 list "" "*"
- LIST (\HasNoChildren) "/" "Drafts"
- LIST (\HasNoChildren) "/" "Trash"
- LIST (\HasNoChildren) "/" "Junk"
- LIST (\HasNoChildren) "/" "Sent"
- LIST (\HasNoChildren) "/" "AutoCleanSpam"
- LIST (\HasNoChildren) "/" "INBOX"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/INBOX" 1 OK List completed.
and 2 list "" "FremdeOrdner/%"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/user2" 2 OK List completed. 3 list "" "FremdeOrdner/%/%"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts" 3 OK List completed.
At this point we are missing "FremdeOrdner/user2/INBOX". Your list command are looking good. Where is the difference?
1 list "" "*" ..
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/t.s"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/tss2"
- LIST (\HasNoChildren) "/" "FremdeOrdner/t.s/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/INBOX" 1 OK List completed. 2 list "" "FremdeOrdner/%"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/t.s"
- LIST (\Noselect \HasChildren) "/" "FremdeOrdner/tss2" 2 OK List completed. 3 list "" "FremdeOrdner/%/%"
- LIST (\HasNoChildren) "/" "FremdeOrdner/t.s/INBOX"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/Drafts"
- LIST (\HasNoChildren) "/" "FremdeOrdner/tss2/INBOX" 3 OK List completed.
Also from your previous mail:
The dovecot config: mail_access_groups: sysdov mail_privileged_group: sysdov
These two above are unnecessary, because you already have mail_gid=sysdov.
mail_uid: sysdov mail_gid: sysdov
But this whole output is from Dovecot v1.x's dovecot -n output
Yes. We started testing shared mailboxes with v1.x and it's from a former email.
. Are you
really using v2.0 or v1.2?
Currently we have /usr/dovecot-2/sbin/dovecot -n # 2.0.rc4: /usr/dovecot-2/etc/dovecot/dovecot.conf # OS: SunOS 5.10 sun4v
first_valid_gid = 20 first_valid_uid = 20 listen = a.b.c.d log_path = /var/log/dovecot mail_location = maildir:~/maildir:INDEX=/addons/index/%u:CONTROL=~/control:LAYOUT=fs mail_plugins = autocreate expire mail_uid = sysdov namespace { inbox = yes list = yes location = prefix = separator = / subscriptions = yes type = private } namespace { list = yes location = maildir:%%h/maildir:CONTROL=~/control/FremdeOrdner/%%u:LAYOUT=fs prefix = FremdeOrdner/%%u/ separator = / subscriptions = no type = shared }
...
Thanks for your hints concerning separated control directories.
-- Regards --- Burckhard Schmidt
On Tue, 2010-08-10 at 15:09 +0100, Timo Sirainen wrote:
3 list "" "FremdeOrdner/%/%"
- LIST (\HasNoChildren) "/" "FremdeOrdner/user2/Drafts" 3 OK List completed.
The INBOXes should have been listed here.
participants (3)
-
Burckhard Schmidt
-
Daniel Stoye
-
Timo Sirainen