Dovecot - publiczne foldery

Sun 24 January 2010 by admin

W przerwie pomiędzy kolejnymi częściami cyklu Windows Deployment Services, zaprezentuje możliwości serwera Dovecot'a  w zakresie współdzielenia folderów publicznych. Poczta elektroniczna odgrywa kluczową rolę w obiegu informacji w organizacji, wiele rozwiązań typu groupware swój rdzeń opiera właśnie o pocztę elektroniczną. Elementem wspólnym wielu rozwiązań pracy grupowej są współdzielone foldery...

Dovecot jest popularnym serwerem POP3/IMAP, który duży nacisk kładzie na bezpieczeństwo, jednocześnie oferując wiele ciekawych możliwości. Jedną z takich możliwośći jest w przypadku zastosowania IMAP'a opcja Namespaces ( http://wiki.dovecot.org/Namespaces ), umożliwia ona klientom pocztowym lokalizowanie położenia skrzynek pocztowych, daje to szanse określenia kilku lokalizacji w tym np. prywatnej i publicznej. Nas w tym wypadku interesuje folder publiczny w tym celu oprócz określenia obowiązkowego namespace'a dla skrzynek prywatych, określamy namespace' typu public:

dovecot.conf:

...

# korzystamy z Maildir, zlokalizowanych w /home/vboxes

mail_location = maildir:/home/vboxes/%d/%u

# obowiązkowy namespace typu private

namespace private {

 separator = /

 prefix =

 # lokalizacja ta sama co mail_location

 # skrzynka INBOX określona może być tylko w jednym namespace

 inbox = yes

}

namespace public {

 # określa jaki znak oddziela poszczególne foldery
 # w przypadku Maildir'a będzie to naogół /

 separator = /

 # unikalna nazwa dla określenia folderu

 prefix = Public/

 location = maildir:/home/vboxes/public

 # wyłączona automatyczna subskrypcja

 subscriptions = no

}

...

zawartość katalogu /home/vboxes/public przedstawia się następująco:

drwxr-xr-x  2 vboxes vboxes 4096 Jan 22 09:54 .Docs

drwxr-xr-x  5 vboxes vboxes 4096 Jan 22 10:54 .Projects

jak widać nie powinna zawierać ona katalogów cur/ new/ tmp/.
Przedstawiona konfiguracja daje nam podstawową funkcjonalność współdzielonych folderów IMAP, umożliwia ona dostęp do nich każdemu użytkownikowi, co więcej każdy z tych użytkowników będzie mógł ustawić flagę Seen (wiadomość przeczytana). W celu dookreślenia praw dostępu do danego folderu korzystamy z ACL, aktywację  ACL wykonujemy dodając odpowiednie pluginy dla IMAP'a oraz LDA:

dovecot.conf:

...

protocol imap {

 mail_plugins = acl imap_acl

}

protocol lda {

 # lokalnie dostarcza poczta (np. ta przetwarzana przez skrypty sieve)

 mail_plugins = acl

}

plugin {

 # ustawienia ACL znajdą się w plikach dovecot-acl w przetwarzanych folderach

 acl = vfile

}

...

przykładowy plik dovecot-acl:

# user1: pełne prawa

# user2: odczyt i ustawienia flagi Seen

user=user1@foo.pl lrwstiekxa

user=user2@foo.pl lrws

Więcej informacji o kontroli dostępu na http://wiki.dovecot.org/ACL
Pozostaje kwestia skonfigurowania flagi Seen tak aby ustawiana była per użytkownik, a nie współdzielona przez wszystkich zainteresowanych. W tym celu ustawiamy odwołanie do pliku dovecot.index w katalogu domowym użytkownika oraz w każdym z folderów tworzymy plik dovecot-shared. Nowa konfiguracja sekcji public i pola location przedstawia się następująco:

# należy ręcznie stworzyć katalog public w katalogu domowym użytkownika

location = maildir:/home/vboxes/public:INDEX=/home/vboxes/%d/%u/public

Każdy ze współdzielonych folderów będzie dostępny na liście współdzielonych folderów, wystarczy go jedynie zasubskrybować. Tym sposobem mamy skonfigurowane foldery współdzielone, do których możemy przenosić wybrane wiadomości bez potrzeby ich ponownego wysyłania do wybranych osób. Nadając odpowiednie uprawnienia możemy kształtować przeznaczenie takich folderów np. dokumenty poufne czy foldery w rodzaju tablic ogłoszeniowych tj. jedna osoba możliwości zapisu pozostałe tylko możliwości odczytu.


Comments