Condividere cartelle imap con altri utenti in dovecot

From RVM Wiki
Revision as of 18:05, 8 November 2011 by Gabriele.vivinetto (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Presupposti

  • Lo scopo è condividere una cartella imap di un utemte con altri, impostando chi ci può accedere e come
  • Le cartelle condivise sottoscrivibili saranno disponibili nella cartella "shared" che apparirà solo se l'utente ha accesso a qualche cartella condivisa da altri
  • Se si utilizzano gli utenti di sistema, le permission delle Maildir dovranno consentire l'accesso ai folder condivisi. Usare /var/log/mail.log per vedere i problemi di accesso. Aiuta molto avere tutti gli utenti mail in un gruppo unico, così da assegnare l'accesso alle maildir condivise a questo gruppo.

Configurazione Dovecot

  • Tutto è fatto in
sudoedit /etc/dovecot/dovecot.conf
  • Impostare il namespace privato, quello delle cartelle personali:
namespace private {
   separator = /
   prefix =
   inbox = yes
}
  • Impostare il namespace delle cartelel condivise:
namespace shared {
   separator = /
   location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u:CONTROL=~/Maildir/shared/%%u
   # vuol dire che le cartelle condivise stanno nella directory 
   # condivisore/Maildir, verrano visualizzate in guardone/shared/condivisore
   # ed i files temporanei saranno salvati nello stesso folder, altrimenti è
   # necessario poter scrivere nella maildir del condivisore
   subscriptions = no
   list = children
   # elenca la gerarchia shared solo se ci sono cartelle disponibili. Impostare
   # a yes se si vuole visualizzare sempre
   #
   hidden = no
   inbox = no
}
  • Abilitare le acl imap:
protocol imap {
  ...
  mail_plugins = acl imap_acl
  • Abilitare le acl per lda
protocol lda {
  mail_plugins = acl
  auth_socket_path = /var/run/dovecot/auth-master
  # il socket è importantissimo, perchè permette di listare le cartelle 
  # condivise !!
  # Se non si vedono le cartelle nonostante le permission, c'è qualcosa che non
  # va col socket 
}
  • Impostare il socket di autenticazione di cui si è parlato prima:
auth default {
  ...
 socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0666
      # Si, ci si deve poter scrivere ... TO BE FIXED
    }
  }
 ...
}
  • Impostare il percorso dell'indice delle cartelle condivise:
plugin {
  ...
  acl = vfile
  acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
  • Testare dovecot:
sudo dovecot -n
  • Riavviare dovecot
sudo invoke-rc.d dovect restart

Impostazione permission di sistema

  • L'indice delle shared folders deve essere scrivibile:
sudo touch /var/lib/dovecot/shared-mailboxes
sudo chmod 0666 /var/lib/dovecot/shared-mailboxes
  • Purtroppo deve creare anche un dotfile li dentro ...
sudo chmod 0777 /var/lib/dovecot/
  • Verificare le permission del socket di autenticazione:
ls /var/run/dovecot/auth-master
srw-rw-rw- 1 root root 0 Nov  8 20:17 /var/run/dovecot/auth-master

Impostazione permission folder da condividere

  • Ipotizziamo di voler condividere la inbox di uno user chiamato condivisore a favore di uno chiamato lettore, ed entrambi appartengono al gruppo users
  • Impostiamo le permission sulla maildir di condivisore
sudo chmod 0750
  • Rendiamo tutte le cartelle accessibili al gruppo user, così potranno essere condivise:
cd  /home/condivisore/Maildir
sudo chmod -R g-rX .
  • Naturalmente, se si vuole condividere in rw, le permission devono essere rwX :-(
  • VERIFICARE SE SERVE: nella Maildir di lettore, creare il folder
sudo -u lettore mkdir /home/lettore/Maildir/shared

Condivisione della cartella

  • Con le versioni recenti, si può far tasto dx sulal cartelal e scegliere "Condivisione"
  • Condividere la INBOX con l'utente lettore in sola lettura
  • Da Thunderbird con l'utente lettore, fare un refresh delle cartelel imap, ed apparirà la cartell
shared/condivisore/INBOX

Riferimenti