Différences entre versions de « Cyrus »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (clarify shell and cyrus commands)
imported>VincentAdolphe
 
(3 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
Lancer l'interface d'administration:
+
== Quelques commandes utiles ==
$ cyradm --user cyrus mydomain.tld
 
  
Supprimer un compte:  
+
La plupart des commandes se font dans l'interface d'administration ''cyradm'' à laquelle on accède avec la commande suivante:
 +
# cyradm --user cyrus mydomain.tld
 +
Password:
 +
>
 +
 
 +
Pour plus d'information sur les commandes disponibles dans l'environnement ''cyradm'', reportez vous au man cyradm(1p) (vous noterez que nous avons utilisé ici les versions courtes des commandes; par exemple, ''lm'' peut aussi s'appeler ''listmailbox'', ''cm'' ''createmailbox'', etc.).
 +
 
 +
=== Suppression d'un compte ===
 +
 
 +
Supprimer un compte (dans l'interface d'administration ''cyradm''):
 
  > sam user/moncompte cyrus all
 
  > sam user/moncompte cyrus all
 
  > dm user/moncompte
 
  > dm user/moncompte
  
Lister les comptes:
+
=== Liste des comptes ===
  $ sasldblistusers2
+
 
  # ou
+
Lister les comptes (définis dans la base d'authentification SASL):
 +
  # sasldblistusers2
 +
 
 +
Lister les mots de passe conservés dans la base SASL:
 +
# db4.2_dump -p /etc/sasldb2
 +
 
 +
Lister les BAL et dossiers existants dans cyrus:
 +
* avec l'interface ''cyadm'', en profitant du fait que l'utilisateur ''cyrus'' a accès à toutes les boîtes aux lettres:
 +
  # cyradm --user cyrus
 
  > lm
 
  > lm
 +
* plus facilement, avec l'outil ''ctl_mboxlist'':
 +
$ sudo -u cyrus ctl_mboxlist -d
 +
 +
 +
=== Créer un compte ou modifier son mot de passe ===
 +
 +
Pour créer un compte ou modifier son mot de passe dans la base SASL:
 +
# saslpasswd2 moncompte@mondomaine.tld
 +
En cas de création, il faut le créer aussi dans cyrus, à l'aide de ''cyradm'':
 +
> cm user/moncompte
 +
 +
=== Suppression d'un compte ===
  
Lister les mots de passe:
+
Suppression d'un compte (seul l'accès est coupé):
  $ db4.2_dump -p /etc/sasldb2
+
  # saslpasswd2 -d moncompte@mondomaine.tld
  
Créer ou modifier un compte:
+
Supprimer une boîte aux lettres (attention, tous les mails qu'elle contient sont perdus):
  $ saslpasswd2
+
> dm user/compte
 +
 
 +
On peut juste supprimer le dossier d'une boite de façon similaire (attention, tous les mails qu'il contient sont perdus):
 +
  > dm user/compte/DOSSIER
 +
 
 +
== Réparer une boîte aux lettres ==
  
 
Réparer un BAL après suppression de mails en masse (Trash/Junk) - attention, les messages ont tendance à repasser en mode "non-lu":  
 
Réparer un BAL après suppression de mails en masse (Trash/Junk) - attention, les messages ont tendance à repasser en mode "non-lu":  
 +
# Supprimer les messages dans le répertoire
 
  $ rm -f ...
 
  $ rm -f ...
 +
# Lancer cyrreconstruct sur le dossier
 
  $ su - cyrus
 
  $ su - cyrus
 
  $ /usr/sbin/cyrreconstruct user/username/Trash
 
  $ /usr/sbin/cyrreconstruct user/username/Trash
  
Convertir une BAL au format Maildir (http://cyrus2dovecot.sw.fu-berlin.de/):  
+
== Convertion du format boîte aux lettres ==
 +
 
 +
Convertir une BAL au format Maildir (http://cyrus2dovecot.sw.fu-berlin.de/) (qui permet une consultation directe):
 
  $ ./cyrus2dovecot --cyrus-inbox /var/spool/cyrus/mail/%h/user/%u \
 
  $ ./cyrus2dovecot --cyrus-inbox /var/spool/cyrus/mail/%h/user/%u \
 
     --cyrus-seen /var/lib/cyrus/user/%h/%u.seen \
 
     --cyrus-seen /var/lib/cyrus/user/%h/%u.seen \
Ligne 28 : Ligne 65 :
 
     --dovecot-inbox dovecot/%u \
 
     --dovecot-inbox dovecot/%u \
 
     username
 
     username
 +
 +
== Copier des dossiers d'une boîte à une autre ==
 +
 +
Cette solution ne nécessite pas l'arrêt du serveur IMAP.
 +
 +
=== Déplacement des répertoires ===
 +
 +
On commence par copier les répertoires représentant les dossiers du répertoire de la boîte source vers celui de la boîte de destination (adaptez le chemin des boîtes selon votre serveur):
 +
# cp -a MONDOSSIER1 MONDOSSIER2 /var/spool/cyrus/mail/d/user/dany/
 +
 +
=== Modification des permissions ===
 +
 +
Il faut ensuite modifier les permissions pour avoir le droit de lire les dossiers déplacés. On a ici 2 possiblités:
 +
 +
==== Première solution ====
 +
 +
On supprime les fichiers cyrus.* des répertoires avant de lancer ''cyrreconstruct'' pour reconstruire un index et des ACL vierges. Les permissions existantes sont ainsi supprimées, et on laisse ''cyrreconstruct'' recréer des droits par défaut qui permettent l'accès du nouveau propriétaire.
 +
Cette solution est plus rapide puisqu'elle évite d'avoir à manipuler soi-même les ACL, mais on perd la configuration des dossiers (c'est à dire le cache et les ACLs existantes).
 +
Voici les commandes nécessaires à cette solution :
 +
# rm -f {MONDOSSIER1,MONDOSSIER2}/cyrus.*
 +
# sudo -u cyrus cyrreconstruct -rf user/dany
 +
...
 +
user/dany/MONDOSSIER1
 +
user/dany/MONDOSSIER2
 +
...
 +
 +
==== Seconde solution ====
 +
 +
On copie tel quel les répertoires, avec leurs fichiers ''cyrus.cache'', ''cyrus.header'', et ''cyrus.index'', on lance ''cyrreconstruct'' pour intégrer les nouveaux dossier à la boîte mail, puis on utilise ''cyradm'' pour supprimer les permissions du propriétaire d'origine et ajouter celle du nouveau propriétaire.
 +
Cette seconde solution est plus correcte, et sera à privilégier (en cas de déplacement de nombreux dossiers, on peut générer dans un fichier les commandes à passer à ''cyradm'' et les lancer avec la commande <tt>perl -MCyrus::IMAP::Shell -e 'run("myscript")'</tt>).
 +
Pour cette solution, les commandes sont les suivantes:
 +
# sudo -u cyrus cyrreconstruct -rf user/dany
 +
discovered user.dany.MONDOSSIER1
 +
discovered user.dany.MONDOSSIER2
 +
...
 +
# cyradm --user cyrus
 +
Password:
 +
> setaclmailbox "user/dany/MONDOSSIER1" dany lrswipcda
 +
> listaclmailbox "user/dany/MONDOSSIER1"
 +
samy lrswipcda
 +
dany lrswipcda
 +
> deleteaclmailbox "user/dany/MONDOSSIER1" samy lrswipcda
 +
> listaclmailbox "user/dany/MONDOSSIER1"
 +
dany lrswipcda
 +
> setaclmailbox "user/dany/MONDOSSIER2" dany lrswipcda
 +
> deleteaclmailbox "user/dany/MONDOSSIER2" samy lrswipcda
 +
(ci-dessus, les commandes ''listaclmailbox'' ne servent qu'à visualiser les modifications faites par les autres commandes)
 +
 +
=== Abonnement aux dossiers copiés ===
 +
 +
Avec les deux solutions, les dossiers sont maintenant accessibles à notre utilisateur de destination, ''dany'', mais ils n'apparaîtront pas tout seul dans sa liste des dossiers IMAP. Il devra d'abord s'abonner aux dossiers déplacés (par exemple, sous Thunderbird, dans le menu contextuel de « Courrier Entrant », il faut choisir « S'abonner » et choisir les dossiers auxquels s'abonner).
 +
 +
Il est possible d'effectuer cette opération sur le serveur à la place de l'utilisateur si on dispose de son mot de passe. Pour cela, on se connecte avec ''cyradm'' sous son compte et on utilise la commande « ''subscribe'' »:
 +
cyradm --user dany
 +
Password:
 +
> subscribe user/dany/MONDOSSIER1"
 +
> subscribe user/dany/MONDOSSIER2"
 +
 +
Vous pouvez vérifier la liste des dossiers auxquels est abonné un utilisateur avec la commande ''listmailbox --subscribed'' :
 +
cyradm --user dany
 +
Password:
 +
> listmailbox --subscribed
 +
...
 +
user/dany/MONDOSSIER1
 +
user/dany/MONDOSSIER2
 +
  
 
== Liens ==
 
== Liens ==
  
 +
* reconstruire une base de donnee "seen" [http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:cyrus:repair_skiplist] (message d'erreur: DBERROR: skiplist recovery /var/lib/cyrus/user/j/machin.seen: ADD at 2FC8 exists)
 
* [http://wiki.dovecot.org/Migration/Cyrus Migration/Cyrus] on the Dovecot wiki
 
* [http://wiki.dovecot.org/Migration/Cyrus Migration/Cyrus] on the Dovecot wiki

Version actuelle datée du 13 mai 2016 à 11:11

Quelques commandes utiles

La plupart des commandes se font dans l'interface d'administration cyradm à laquelle on accède avec la commande suivante:

# cyradm --user cyrus mydomain.tld
Password:
> 

Pour plus d'information sur les commandes disponibles dans l'environnement cyradm, reportez vous au man cyradm(1p) (vous noterez que nous avons utilisé ici les versions courtes des commandes; par exemple, lm peut aussi s'appeler listmailbox, cm createmailbox, etc.).

Suppression d'un compte

Supprimer un compte (dans l'interface d'administration cyradm):

> sam user/moncompte cyrus all
> dm user/moncompte

Liste des comptes

Lister les comptes (définis dans la base d'authentification SASL):

# sasldblistusers2

Lister les mots de passe conservés dans la base SASL:

# db4.2_dump -p /etc/sasldb2

Lister les BAL et dossiers existants dans cyrus:

  • avec l'interface cyadm, en profitant du fait que l'utilisateur cyrus a accès à toutes les boîtes aux lettres:
# cyradm --user cyrus
> lm
  • plus facilement, avec l'outil ctl_mboxlist:
$ sudo -u cyrus ctl_mboxlist -d


Créer un compte ou modifier son mot de passe

Pour créer un compte ou modifier son mot de passe dans la base SASL:

# saslpasswd2 moncompte@mondomaine.tld

En cas de création, il faut le créer aussi dans cyrus, à l'aide de cyradm:

> cm user/moncompte

Suppression d'un compte

Suppression d'un compte (seul l'accès est coupé):

# saslpasswd2 -d moncompte@mondomaine.tld

Supprimer une boîte aux lettres (attention, tous les mails qu'elle contient sont perdus):

> dm user/compte

On peut juste supprimer le dossier d'une boite de façon similaire (attention, tous les mails qu'il contient sont perdus):

> dm user/compte/DOSSIER

Réparer une boîte aux lettres

Réparer un BAL après suppression de mails en masse (Trash/Junk) - attention, les messages ont tendance à repasser en mode "non-lu":

# Supprimer les messages dans le répertoire
$ rm -f ...
# Lancer cyrreconstruct sur le dossier
$ su - cyrus
$ /usr/sbin/cyrreconstruct user/username/Trash

Convertion du format boîte aux lettres

Convertir une BAL au format Maildir (http://cyrus2dovecot.sw.fu-berlin.de/) (qui permet une consultation directe):

$ ./cyrus2dovecot --cyrus-inbox /var/spool/cyrus/mail/%h/user/%u \
    --cyrus-seen /var/lib/cyrus/user/%h/%u.seen \
    --cyrus-sub /var/lib/cyrus/user/%h/%u.sub \
    --dovecot-inbox dovecot/%u \
    username

Copier des dossiers d'une boîte à une autre

Cette solution ne nécessite pas l'arrêt du serveur IMAP.

Déplacement des répertoires

On commence par copier les répertoires représentant les dossiers du répertoire de la boîte source vers celui de la boîte de destination (adaptez le chemin des boîtes selon votre serveur):

# cp -a MONDOSSIER1 MONDOSSIER2 /var/spool/cyrus/mail/d/user/dany/

Modification des permissions

Il faut ensuite modifier les permissions pour avoir le droit de lire les dossiers déplacés. On a ici 2 possiblités:

Première solution

On supprime les fichiers cyrus.* des répertoires avant de lancer cyrreconstruct pour reconstruire un index et des ACL vierges. Les permissions existantes sont ainsi supprimées, et on laisse cyrreconstruct recréer des droits par défaut qui permettent l'accès du nouveau propriétaire. Cette solution est plus rapide puisqu'elle évite d'avoir à manipuler soi-même les ACL, mais on perd la configuration des dossiers (c'est à dire le cache et les ACLs existantes). Voici les commandes nécessaires à cette solution :

# rm -f {MONDOSSIER1,MONDOSSIER2}/cyrus.*
# sudo -u cyrus cyrreconstruct -rf user/dany
...
user/dany/MONDOSSIER1
user/dany/MONDOSSIER2
...

Seconde solution

On copie tel quel les répertoires, avec leurs fichiers cyrus.cache, cyrus.header, et cyrus.index, on lance cyrreconstruct pour intégrer les nouveaux dossier à la boîte mail, puis on utilise cyradm pour supprimer les permissions du propriétaire d'origine et ajouter celle du nouveau propriétaire. Cette seconde solution est plus correcte, et sera à privilégier (en cas de déplacement de nombreux dossiers, on peut générer dans un fichier les commandes à passer à cyradm et les lancer avec la commande perl -MCyrus::IMAP::Shell -e 'run("myscript")'). Pour cette solution, les commandes sont les suivantes:

# sudo -u cyrus cyrreconstruct -rf user/dany
discovered user.dany.MONDOSSIER1
discovered user.dany.MONDOSSIER2
...
# cyradm --user cyrus
Password:
> setaclmailbox "user/dany/MONDOSSIER1" dany lrswipcda
> listaclmailbox "user/dany/MONDOSSIER1"
samy lrswipcda
dany lrswipcda
> deleteaclmailbox "user/dany/MONDOSSIER1" samy lrswipcda
> listaclmailbox "user/dany/MONDOSSIER1"
dany lrswipcda
> setaclmailbox "user/dany/MONDOSSIER2" dany lrswipcda
> deleteaclmailbox "user/dany/MONDOSSIER2" samy lrswipcda

(ci-dessus, les commandes listaclmailbox ne servent qu'à visualiser les modifications faites par les autres commandes)

Abonnement aux dossiers copiés

Avec les deux solutions, les dossiers sont maintenant accessibles à notre utilisateur de destination, dany, mais ils n'apparaîtront pas tout seul dans sa liste des dossiers IMAP. Il devra d'abord s'abonner aux dossiers déplacés (par exemple, sous Thunderbird, dans le menu contextuel de « Courrier Entrant », il faut choisir « S'abonner » et choisir les dossiers auxquels s'abonner).

Il est possible d'effectuer cette opération sur le serveur à la place de l'utilisateur si on dispose de son mot de passe. Pour cela, on se connecte avec cyradm sous son compte et on utilise la commande « subscribe »:

cyradm --user dany
Password:
> subscribe user/dany/MONDOSSIER1"
> subscribe user/dany/MONDOSSIER2"

Vous pouvez vérifier la liste des dossiers auxquels est abonné un utilisateur avec la commande listmailbox --subscribed :

cyradm --user dany
Password:
> listmailbox --subscribed
...
user/dany/MONDOSSIER1
user/dany/MONDOSSIER2


Liens

  • reconstruire une base de donnee "seen" [1] (message d'erreur: DBERROR: skiplist recovery /var/lib/cyrus/user/j/machin.seen: ADD at 2FC8 exists)
  • Migration/Cyrus on the Dovecot wiki