Zugriff auf eine Mailbox für andere User

Christoph Haas christoph+dovecot_de at haas-online.org
Sa Nov 10 21:38:40 CET 2018


Hallo zusammen,

ich verzweifle noch an einer Aufgabe, die ich unter Cyrus IMAPd  
trivial erledigen konnte: der Freigabe der Mailbox eines Benutzers  
(userA) für einen anderen Benutzer (userB).

Dovecot ist in Version 2.2.13. Mailbox-System ist mdbox (nicht mbox  
oder Maildir!). Das System laeuft mit Debian. Die  
Mailbox-Verzeichnisse liegen unter /var/vmail/.

Die ACLs der Mailbox des freigebenden Benutzers userA fuer Benutzer  
userB habe ich versucht folgendermassen zu setzen:
doveadm mailbox list -u userA "*" | while read mailbox; do doveadm acl  
set -u userA "$mailbox" user=userB admin create delete expunge insert  
lookup post read write write-deleted write-seen; done

Wie kann ich nun die gesetzten ACLs nun ueberpruefen?

Mit
"doveadm acl debug -u userB shared/userA"
erhalte ich die Fehlermeldung
"doveadm(userB): Error: Mailbox 'INBOX' in namespace 'shared/userA/'  
doesn't exist in /var/vmail/shared/userA/mail"

Dies scheint mir plausibel zu sein, denn die Mailbox des userA liegt  
ja in "/var/vmail/userA/mail"

Eine Abfrage
"doveadm acl debug -u userB userA"
ergibt
"doveadm(userB): Error: Can't open mailbox userA: Mailbox doesn't  
exist: userA"


/etc/dovecot/conf.d/10-mail.conf sieht bei mir so aus:
mail_location = mdbox:~/mail:INBOX=/var/vmail/%n/mail
mail_plugins = acl quota
mail_shared_explicit_inbox = no

namespace inbox {
     type = private
     separator = /
     prefix = INBOX/
     inbox = yes
     hidden = no
     list = yes
     subscriptions = yes
     ignore_on_failure = no
}

namespace {
     type = shared
     separator = /
     prefix = shared/%%u/
     location = mdbox:~/mail:INDEX=~/mail/shared/%%n
     list = yes
     subscriptions = yes
     ignore_on_failure = no
}

Ob der Eintrag fuer die shared mailboxen richtig ist, bin ich mir  
nicht sicher.
Ich hatte zu Beginn nur den "namespace inbox" konfiguriert, aber jetzt  
muss ich auf andere eingerichtete Mailboxen Zugriffe vergeben...

Mit Cyrus musste ich nur in cyradm ein "setaclmailbox INBOX.userA.*  
lrswipkxtecda" absetzen und in meinem Mailer wurde bei userB ein neuer  
Ordner "user.userA" mit allen freigegebenen Ordnern angezeigt.

Wo bzw. wie kann ich dann die freigegebene Mailbox anzeigen lassen?
Ich habe die Anzeige nur von abonierten IMAP-Ordner in meinem Mailer  
(Horde IMP) bereits deaktiviert, so dass alles auf das Zugriffsrechte  
bestehen, angezeigt werden sollte. - Das hat bislang auch mit Cyrus  
gut funktioniert.

Mit Dovecot bekomme ich das einfach nicht hin ...

Was muss ich tun, damit userB auf die Ordner von userA zugreifen kann  
und wie werden die freigegebenen Ordner von userA bei userB angezeigt?

Schon mal Danke fuer Eure Hilfe!
Christoph.


-- 
Christoph Haas



Mehr Informationen über die Mailingliste Dovecot