Carpetas compartidas IMAP en Courier IMAP


A grandes rasgos, un servidor IMAP es
un servidor que nos permite leer el correo directamente desde el
servidor como si lo tuviéramos en local.

Si cambiamos de cliente o de equipo,
siempre disponemos del correo allí donde lo dejamos, ya que
reside físicamente en el servidor.

Existen un tipo especial de carpetas
llamadas carpetas compartidas (o “shared folders”) que
permiten compartir el correo entre diferentes usuarios. Vamos a ver
qué son y cómo funcionan.

Este artículo está basado
en courier-imap. El uso de carpetas compartidas está
especificado en el RFC
sobre IMAP 4 Namespaces
(1) y consiste en tener un lugar común
donde dejar el correo de varios usuarios para que éstos puedan
leer la misma copia.
El uso de IMAP conlleva múltiples
ventajas para cualquier organización. La mayoría de
ellas se derivan del hecho de tener la información
centralizada en un único punto: copias de seguridad, inmunidad
frente a averías en los clientes, facilidad de migración…
y al estar respetando un estándar, pues se consigue, también,
una facilidad de migración entre los clientes que respetan ese
estándar (prácticamente todos los clientes de correo
modernos).
Antes de empezar a usar courier,
conviene echarle un vistazo a este
otro artículo
(2) donde se explica cómo configurar
correctamente los clientes para no tener problemas con el número
de conexiones máximas o el espacio de nombres por defecto.
Bien. Para compartir una carpeta IMAP
tenemos que crear un Maildir común para cada conjunto de
carpetas que queramos compartir. Así pues, nos aparece el
término “Maildir compartible” y “Carpeta
compartible”, denotando un Maildir especial que puede contener
carpetas compartidas y un conjunto de carpetas creadas en ese Maildir
susceptibles de ser compartidas.
Nuestras tareas consistirán,
entonces en:

  • Instalar y configurar courier-imap
  • Crear el Maildir donde los
    usuarios leerán su correo

  • Crear tantos maildirs compartidos
    como queramos

  • Que los usuarios se suscriban a
    las carpetas compartidas.

Para instalar courier-imap en Debian se
utiliza apt-get install courier-imap courier-imap-ssl (el segundo no
es obligatorio, pero sí muy recomendable) en otras
distribuciones, buscad el paquete con la herramienta de instalación
de paquetes.
Para que courier-imap funcione es
necesario que el correo de nuestros usuarios se almacene en formato
maildir. Así que para cada usuario crearemos un Maildir
llamado “Maildir” en su $HOME.
$ maildirmake Maildir
Con esto es suficiente para que los
clientes se puedan conectar con su cliente de correo, crear una nueva
cuenta IMAP y leer tranquilamente el correo.
Pero ahora queremos que varios usuarios
puedan compartir el correo sin necesidad de hacer “forward”
o imprimirlo y dejarlo sobre la mesa.
Lo primero que haremos es elegir un
directorio al que tengan acceso los usuarios que nos interesa que
puedan compartir el correo. El tema de permisos no lleva ningún
componente adicional y se basa en los permisos que el sistema de
ficheros establezca para el directorio.
Así, pues, suele ser una buena
idea definir grupos de usuarios con características comunes y
crear el directorio con permisos rwxrwx— donde el usuario y el
grupo tienen acceso completo.
Para crear el Maildir utilizaremos
maildirmake -S <nombre del maildir> El parámetro “-S”
indica que se va a crear un Maildir compartible.
Una vez creado el Maildir compartible,
crearemos carpetas compartibles en él. Para crear una carpeta
compartible utilizaremos maildirmake -s <modo> -f <nombre de
la carpeta> <nombre del maildir>
El <modo> es una lista de valores
separadas por comas que pueden ser:

  • read o readonly: Sólo el usuario que ha creado la carpeta puede escribir, el resto ólo los leen
  • write: Todos los usuarios pueden leer y escribir en la carpeta
  • group: Sólo los miembros del grupo pueden escribir en la carpeta, el resto pueden leer.

Tened en cuenta que esta configuración
nunca puede contrariar los permisos del sistema de ficheros.
Una vez creados los maildirs que
queramos y las carpetas que queramos, tenemos que decidir cuál
será la manera en que los usuarios compartirán estas
carpetas.

Lo mejor es crear varios grupos de
usuarios, aunque jugando con el flag “-s” y los permisos
del sistema de ficheros podemos tener todas las combinaciones
necesarias.
Después, tenemos que decidir qué
carpetas se publicarán para todos los usuarios y qué
carpetas necesitarán de una declaración explícita
para ser utilizadas.
El fichero /etc/courier/maildirshared
contiene una colección de alias hacia los Maildir compartibles
escritos en formato <alias del maildir><tab><ruta al
maildir>.
Cualquier Maildir declarado en ese
fichero provocará que cualquier usuario con permisos de
lectura en el Maildir pueda suscribirse al Maildir y leer su
contenido.
Esto es muy útil en la mayoría
de casos, pero alguna vez será deseable que un Maildir sólo
sea compartible por un grupo reducido de usuarios. Para ello, hay que
ejecutar maildirmake –add <Alias>=<ruta> <ruta al
Maildir del usuario> (más adelante con el ejemplo queda más
claro).
Una vez finalizados todos los pasos, el
usuario sólo tiene que utilizar la opción “Suscribir”
de su cliente de correo para ver las carpetas compartidas y comprobar
cómo todo el correo sigue las reglas definidas.

Ejemplo:
Vamos a suponer una organización
donde existen dos departamentos: Ventas y Adminsitración ,
donde sus usuarios están separados en los grupos “ventas”
y “administración” más un par de jefazos
que están en el grupo “gerencia” y todos con umask
0002 y pertenecientes a “users”.
Queremos declarar 3 Maildirs
compartidos con las siguientes características:

  • Gerencia: Cualquier e-mail de este
    maildir sólo lo puede leer y escribir un miembro, del grupo
    “gerencia”

  • Facturación: Cualquier
    e-mail de Facturación puede ser leído y escrito por
    cualquier miembro de facturación y leído por los
    demás.

  • Ventas: Un e-mail de Ventas puede
    ser leído y escrito por cualquier usuario

Vamos a crear los Maildirs (usaré
/var/tmp, pero podéis ponerlo donde queráis):

  • host:/var/tmp/maildirs# maildirmake -S MaildirGerencia
  • host:/var/tmp/maildirs# maildirmake -S MaildirFacturacion
  • host:/var/tmp/maildirs# maildirmake -S MaildirVentas

Ahora nos creamos unas carpetas dentro
de cada Maildir para ir organizando el trabajo:

  • host:/var/tmp/maildirs# maildirmake -s group -f Chistes /var/tmp/maildirs/MaildirGerencia
  • host:/var/tmp/maildirs# maildirmake -s group -f Informes /var/tmp/maildirs/MaildirGerencia
  • host:/var/tmp/maildirs# maildirmake -s group -f Curricula /var/tmp/maildirs/MaildirGerencia
  • host:/var/tmp/maildirs# maildirmake -s group -f ProblemasCobro /var/tmp/maildirs/MaildirFacturacion
  • host:/var/tmp/maildirs# maildirmake -s group -f AvisosPago /var/tmp/maildirs/MaildirFacturacion
  • host:/var/tmp/maildirs# maildirmake -s group -f DatosBancarios /var/tmp/maildirs/MaildirFacturacion
  • host:/var/tmp/maildirs# maildirmake -s write -f Clientes /var/tmp/maildirs/MaildirVentas
  • host:/var/tmp/maildirs# maildirmake -s write -f proveedores /var/tmp/maildirs/MaildirVentas

Y le pondremos los permisos adecuados a
los directorios de modo que el grupo gerencia pueda escribir en
gerencia, el grupo facturación pueda escribir en facturación
y todos (users) puedan escribir en ventas.
Ahora editamos el fichero
/etc/courier/maildirshared y declaramos los alias que, por defecto,
cualquier usuario verá al intentar suscribirse:
Facturacion<tab>/var/tmp/maildirs/MaildirFacturacion
Ventas<tab>/var/tmp/maildirs/MaildirVentas

Y añadimos explícitamente
al presidente y vicepresindete al MaildirGerencia (suponemos que el
Maildir de cada usuario está en $HOME/Maildir):

  • host:/home/presidente$~ maildirmake –add Gerencia=/var/tmp/maildirs/MaildirGerencia $HOME/Maildir
  • host:/home/vicepresidente$~ maildirmake –add Gerencia=/var/tmp/maildirs/MaildirGerencia $HOME/Maildir

Haciendo esto último, el resto
de usuarios no podrán suscribirse a las carpetas del
MaildirGerencia, porque ni siquiera las verán.
El resultado es que los usuarios que se suscriban a, por ejemplo, el Maildir compartido de Facturación, podrán ver en ella las carpetas “ProblemasCobro”, “AvisosPago” y “DatosBancarios” e introducir cualquier e-mail en ellas (esas son las carpetas “compartibles”), bien manualmente o bien con una regla de correo

Y eso es todo, sólo queda que
los usuarios se suscriban a las carpetas y copien el correo de unas a
otras.Lista de enlaces de este artículo:

  • http://www.rfc-editor.org/rfc/rfc2342.txt
  • http://bulma.net/body.phtml?nIdNoticia=2047
  • Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2095 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.