[Kolab]Berechtigungen auf Gemeinsame Ordner (Shared Folders)

mail
german

#1

Wenn man gemeinsame Ordner für den Mailzugriff einrichtet und dabei einer Gruppe Schreibrechte auf den Ordner gewährt, damit diese dort z.B. auch Mails löschen können, so ergibt sich ein unangenehmer Nebeneffekt:
Die Berechtigungen für einen solchen Ordner werden auf lrswipcd gesetzt. Durch das c-Flag erhalten die Benutzer seit cyrus v2 allerdings nicht nur die Berechtigung eigene Ordner zu erstellen, sondern auch Ordner zu löschen. Das ist eigentlich kein Problem wenn man einen Mailclient benutzt der sich an die IMAP-Standards hält. Benutzt der Anwender allerdings Outlook, so hat er dadurch auch die Möglichkeit den kompletten gemeinsamen Ordner zu löschen oder zu verschieben. Ist dieser als empfangsberechtigter Ordner mit eigener Mailadresse eingerichtet, so landen Mails an diese Adresse zukünftig im Orkus.
Um das effektiv zu verhindern, bleibt in der Regel nur, das c-Flag für solche shared folders zu entfernen. Damit beraubt man zwar die Anwender der Möglichkeit, eigene Unterordner anzulegen, erspart sich aber so manche Wiederherstellungsarie kompletter Gruppenordner mit den darin enthaltenen Unterordnern und Mails.
Diese Änderung kann händisch über den cyradm erfolgen. Im nachfolgenden wird der Gruppe “Mail_User” das c-Falg für den Gemeinsamen Ordner “testordner” entzogen:

[code]root@ucsmaster:~# cyradm
cyradm> server localhost
IMAP Password:
localhost> lam test

user/testordner@domain.local:
testordner@domain.local lrswipcda
user/testordner/testordner@domain.local:
group:Mail_Users lrswipcd
testordner@domain.local lrswipcda

localhost> sam user/testordner/testordner@domain.local group:Mail_Users lrswipd
localhost> lam test

user/testordner@domain.local:
testordner@domain.local lrswipcda
user/testordner/testordner@domain.local:
group:Mail_Users lrswipd
testordner@domain.local lrswipcda

localhost> quit
root@ucsmaster:~#[/code]

Möchte man sich diese Schritte nach der Erstellung eines gemeinsamen Ordners über den UDM ersparen (was insbesondere bei mehreren Ordnern oder der Änderung von Berechtigungen seeeehr nervig werden kann), so müssen nur die entsprechenden Erstellungsregeln angepasst werden.
Diese stehen in den Dateien /usr/lib/perl5/Cyrus/IMAP/Admin.pm und /usr/lib/univention-directory-listener/system/cyrus-shared-folder.py. Hier müssen jeweils an der richtigen Stelle die ACLs von lrswipcd auf lrswipd für die Policy write (schreiben) geändert werden. Dies sähe dann so aus:

vi +598 /usr/lib/perl5/Cyrus/IMAP/Admin.pm
                           write => 'lrswipd',
vi +114 /usr/lib/univention-directory-listener/system/cyrus-shared-folder.py
                           policy = 'lrswipd'
/etc/init.d/univention-directory-listener restart

Der anschliessende Neustart des Listeners bewirkt, dass die geänderten Konfigurationsdateien neu eingelesen werden.

ACHTUNG: Änderungen an den Systemdateien gehen bei Updates ggf. verloren und müssen wieder neu gesetzt werden!

Der saubere Weg wäre es natürlich, ein entsprechendes Paket für diese Änderungen zu erstellen, welches auch bei Updates dafür sorgt, dass die Änderungen erhalten bleiben.
Noch schöner wäre es natürlich wenn unsere lieben Univentioner sich dieses Problems annehmen würden und es in einer der nächsten Versionen fixen würden :wink:

Ciao
elbim


#2

Hallo,

vielen Dank für die ausführliche Beschreibung.
Damit dieses Verhalten evtl. zu einer kommenden UCS Version mit berücksichtigt und verbessert werden kann, habe ich hierzu einen entsprechenden Feature-Request Eintrag in unserem Bug-Tracking System erstellt:
forge.univention.org/bugzilla/s … i?id=23187

Mit freundlichen Grüßen
Murat Odabas