AW: Shared folders mit Dovecot und Sogo

Dennis Riehle webmaster at riehle-web.com
Mi Jul 6 11:22:55 CEST 2016


Hallo Daniel,

erstmal herzlichen Dank für deine Antwort. Die Angabe "subscription" 
bezieht sich allerdings nur darauf, ob die Ordner standardmäßig 
abonniert werden sollen. Ich habe in SOGo aber bereits die Option 
ausgewählt, dass alle Ordner - auch die nicht abonnierten - angezeigt 
werden sollen und auch der Befehl doveadm mailbox list zeigt sowohl 
abonnierte, wie auch nicht-abonnierte Ordner an. Ich habe "subscription" 
mal auf yes gesetzt, aber erwartungsgemäß bringt das leider keine 
Änderung.

Ich habe nun nochmal weiter rumgespielt und dabei das Problem finden 
können! Meine Benutzernamen sind die vollständigen Mailadressen, also 
z.B. thomas.smith at example.org. Durch die in den Mailadressen enthaltenen 
Punkte kommt Dovecot durcheinander, wenn man - so wie ich - den 
"separator" auf einen Punkt eingestellt hat. Die Pfade über die Dovecot 
dann versucht auf die freigegebene Mailbox zuzugreifen sind dann falsch. 
Das scheint ein Bug oder zumindest ein bekanntes Verhalten von Dovecot 
zu sein:

http://www.dovecot.org/list/dovecot/2014-April/095749.html

Wenn ich den Separator auf "/" ändere, dann funktionert es. Allerdings 
musste ich den Separator sowohl für den privaten, wie auch den geteilten 
Namespace ändern. Folgende Konfiguration funktioniert (übrigens im 
Zusammenspiel mit ISPConfig, falls das jemanden interssiert):

namespace inbox {
   type = private
   separator = /
   prefix =
   inbox = yes
}
namespace shared {
   type = shared
   separator = /
   prefix = shared/%%u/
   location = 
maildir:%%h/Maildir:INDEX=%h/shared/%%u:CONTROL=%h/shared/%%u
   subscriptions = no
   list = children
}

Viele Grüße
Dennis


Am 06.07.2016 08:07, schrieb Mueller:
> Schau mal hier:
> http://dokuwiki.tachtler.net/doku.php?id=tachtler:dovecot_shares [1]
> 
> Hier:
> 
> namespace {
>   list = yes
>   location =
> maildir:%%h/Maildir:INDEX=%h/shared/%%u:CONTROL=%h/shared/%%u
>   prefix = shared.%%u.
>   separator = .
>   subscriptions = no   ßdas müsste auf yes gesetzt werden damit es
> an gezeigt werden kann
>   type = shared
> }
> 
> Bei mir funktionierend:
> 
> namespace {
>   list = children
>   location =
> maildir:/var/mail/maildata/%%u/mail:INDEX=/var/mail/maildata/%u/mail/shared/%%u:CONTROL=%h/shared/%%u
>   prefix = shared/%%u/
>   separator = /
>   subscriptions = yes
>   type = shared
> }
> 
> Grüße
> 
> Daniel
> 
> EDV DANIEL MÜLLER
> 
> Leitung EDV
> Tropenklinik Paul-Lechler-Krankenhaus
> Paul-Lechler-Str. 24
> 72076 Tübingen
> 
> Tel.: 07071/206-463, Fax: 07071/206-499
> Email: mueller at tropenklinik.de
> www.tropenklinik.de [2]
> 
>  www.bauen-sie-mit.tropenklinik.de
> 
> 
> 
> VON: Dennis Riehle [mailto:webmaster at riehle-web.com]
> GESENDET: Dienstag, 5. Juli 2016 15:07
> AN: dovecot at listen.jpberlin.de
> BETREFF: Shared folders mit Dovecot und Sogo
> 
> Hallo zusammen,
> 
> ich bin neu hier in dieser Maillingliste und da ich über Google auf
> einige hilfreiche Diskussionen hier gestoßen bin, dachte ich, ich
> frage mit meinem Problem mal hier nach. Vielleicht hat hier ja jemand
> eine Idee, die mir weiterhelfen kann :-)
> 
> Ich habe einen Sever mit Sogo aufgesetzt, welcher auf meinen
> bestehenden Mailserver mit Dovecot und Postfix zugreift. Sogesehen
> reichert der Sogo-Server also mein IMAP/SMTP lediglich im Groupware
> an, also Kalender, Kontakte etc. Das klappt soweit auch prima und die
> Oberfläche von Sogo lässt sich auch für die Konfiguration von IMAP
> ACLs nutzen. Allein Dovecot liefert die freigegebenen Ordner anderer
> Nutzer leider bei einem LIST-Befehl nicht aus, weshalb die für einen
> User freigegebenen Ordner nicht sichtbar sind.
> 
> Mittlerweile hab ich keine Idee mehr woran es liegen könnte. Alle
> Daten von Dovecot liegen in /var/vmail, alle Dateien und Ordner
> gehören vmail:vmail und haben 0600 bzw. 0700 als Rechte - das müsste
> doch eigentlich passen? Auch die ACLs selber scheinen zu passen, wie
> die Ausgabe von doveadm -f table acl und die Inhalte der Datei
> dovecot-acl zeigen. In meinem Szenario haben <User1> und <User2>
> jeweils ihre INBOX für den anderen User freigegeben. Keiner der User
> kann allerdings auf die INBOX des anderen zugreifen. Anbei die Ausgabe
> von doveconf -n und darunter auch diverser anderen Befehle.
> 
> Hat jemand noch eine Idee was ich falsch machen könnte?
> 
> Herzlichen Dank und Grüße
> Dennis
> 
> doveconf -n
> # 2.2.13: /etc/dovecot/dovecot.conf
> doveconf: Warning: NOTE: You can get a new clean config file with:
> doveconf -n > dovecot-new.conf
> doveconf: Warning: Obsolete setting in /etc/dovecot/dovecot.conf:61:
> namespace shared {} has been replaced by namespace { type=shared }
> # OS: Linux 3.16.0-4-amd64 x86_64 Debian 8.5
> auth_mechanisms = plain login
> disable_plaintext_auth = no
> listen = *,[::]
> log_timestamp = "%Y-%m-%d %H:%M:%S "
> mail_debug = yes
> mail_plugins = quota acl
> mail_privileged_group = vmail
> namespace {
>   list = yes
>   location =
> maildir:%%h/Maildir:INDEX=%h/shared/%%u:CONTROL=%h/shared/%%u
>   prefix = shared.%%u.
>   separator = .
>   subscriptions = no
>   type = shared
> }
> namespace inbox {
>   inbox = yes
>   location =
>   prefix =
>   separator = .
>   type = private
> }
> passdb {
>   args = /etc/dovecot/dovecot-sql.conf
>   driver = sql
> }
> plugin {
>   acl = vfile
>   acl_shared_dict = file:/var/vmail/shared-mailboxes.db
>   quota = dict:user::file:/var/vmail/%d/%n/.quotausage
>   sieve = /var/vmail/%d/%n/.sieve
> }
> protocols = imap pop3
> service auth {
>   unix_listener /var/spool/postfix/private/auth {
>     group = postfix
>     mode = 0660
>     user = postfix
>   }
>   unix_listener auth-userdb {
>     group = vmail
>     mode = 0600
>     user = vmail
>   }
>   user = root
> }
> service imap-login {
>   client_limit = 1000
>   process_limit = 500
> }
> ssl_cert = </etc/postfix/smtpd.cert
> ssl_key = </etc/postfix/smtpd.key
> ssl_protocols = !SSLv2 !SSLv3
> userdb {
>   args = /etc/dovecot/dovecot-sql.conf
>   driver = sql
> }
> protocol imap {
>   mail_plugins = quota acl imap_quota imap_acl
> }
> protocol pop3 {
>   mail_plugins = quota
>   pop3_uidl_format = %08Xu%08Xv
> }
> protocol lda {
>   mail_plugins = sieve quota acl
> }
> 
> cat /var/vmail/<HOSTNAME>/<USER2>/Maildir/dovecot-acl
> user=<USER1>@<HOSTNAME> akxeilprwts
> 
> cat /var/vmail/<HOSTNAME>/<USER2>/Maildir/dovecot-acl-list
> 1467719607 INBOX
> 
> doveadm -f table acl get -u <USER1>@<HOSTNAME> INBOX
> ID                            Global Rights
> user=<USER2>@<HOSTNAME>          insert lookup read write
> write-deleted write-seen
> 
> cat /var/vmail/shared-mailboxes.db
> shared/shared-boxes/user/<USER2>@<HOSTNAME>/<USER1>@<HOSTNAME>
> 1
> shared/shared-boxes/user/<USER1>@<HOSTNAME>/<USER2>@<HOSTNAME>
> 1
> 
> doveadm mailbox list -u <USER1>@<HOSTNAME>
> Trash
> Sent
> Junk
> Drafts
> shared
> INBOX
> 
> Links:
> ------
> [1] http://dokuwiki.tachtler.net/doku.php?id=tachtler:dovecot_shares
> [2] http://www.tropenklinik.de/


Mehr Informationen über die Mailingliste Dovecot