• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] cyrus umziehen

Hallo,

ich muss mein cyrus umziehen auf eine neue Maschine mit neuem System (OS12.1). Das alte System (OS 11.2) steht unten.

Ein intelligentes Kopieren der confs ist beendet (alles genau anschauen und übertragen)

Nun habe ich die Daten der cyrus-Datenbanken kopiert (/var/lib/imap und /var/spool/imap).
Dabei fällt mir auf dass im alten System alles root/root war und im neuen die Verzeichnisse cyrus/mail als Berechtigung haben.

Nach einem reconstruct mit
Code:
/usr/lib/cyrus/bin/reconstruct -rf *

kommt in der /var/log/message folgende Fehlermeldung:
Code:
Dec 29 14:12:57 main2 reconstruct[28851]: DBERROR: dbenv->open '/var/lib/imap/db' failed: Permission denied
Dec 29 14:12:57 main2 reconstruct[28851]: DBERROR: init() on berkeley
Dec 29 14:12:57 main2 reconstruct[28851]: DBERROR: reading /var/lib/imap/db/skipstamp, assuming the worst: Permission denied
Dec 29 14:12:57 main2 reconstruct[28851]: IOERROR: opening /var/lib/imap/mailboxes.db: Permission denied
Dec 29 14:12:57 main2 reconstruct[28851]: DBERROR: opening /var/lib/imap/mailboxes.db: cyrusdb error

Tante Google hat mir nicht wirklich weiter geholfen. Hat sich zwischen dem alten und dem neuen System die Datenbank geändert?
Ich hab schon alles mögliche versucht aber ich komme nicht weiter. Wer hat da eine Idee?

Grüße
Carsten
 

spoensche

Moderator
Teammitglied
Du musst die Zugriffsrechte anpassen, damit der User cyrus die Datenbank lesen, ändern kann.
Code:
chown -R cyrus:mail /var/lib/imap
Danach noch mal den reconstruct Befehl durchführen.
 
OP
C

carsten

Guru
Danke, ich probiere es...

Fragt sich nur, wieso das jetzt alles anders ist. Aber egal ;-)

Ach ja, hat jemand eine Liste, wie die Berechtigungen der Verzeichnisse /var/lib/imap und /var/spool/imap aussehen müssten im Standard? Hab da inzwischen zu viel rumgedreht...

Oder gibts durch Neuinstallieren von cyrus (und vorheriges Löschen der beiden Verzeichnisse) die Chance, dass einem das brav wieder neu angelegt wird?
 

spoensche

Moderator
Teammitglied
carsten schrieb:
Danke, ich probiere es...

Fragt sich nur, wieso das jetzt alles anders ist. Aber egal ;-)

Egal ist das nicht, ganz im Gegenteil. Ein Dienst, z.B. Cyrus läuft mit root Rechten und wenn ein Angreifer es schafft ihn zu kompromitieren hat er auch Root Rechte, was nicht im Sinne des Erfinders ist. Wenn Cyrus aber nicht las root, sondern als User cyrus ausgeführt wird, hat im Falle eines Falles der Angreifer keine root Rechte.

carsten schrieb:
Ach ja, hat jemand eine Liste, wie die Berechtigungen der Verzeichnisse /var/lib/imap und /var/spool/imap aussehen müssten im Standard? Hab da inzwischen zu viel rumgedreht...

Überleg doch mal. Wer soll bzw. muss auf die Verzeichnise Lese- und Schreibrechte haben und ist der Eigentümer? cyrus
Wer sollte Leserechte auf die Verzeichnisse haben? Die Gruppe mail.
Also musst du die Berechtigung wie ändern?

Das solltest du im Schlaf wissen, wenn du einen Server betreibst.

carsten schrieb:
Oder gibts durch Neuinstallieren von cyrus (und vorheriges Löschen der beiden Verzeichnisse) die Chance, dass einem das brav wieder neu angelegt wird?
[/quote]

Neuinstallieren? Da musste nach M$ gehen.
 

stka

Guru
Hast du das reconstruct als root gemacht? Wenn ja ist das dein Problem, das musst du als user cyrus machen. Wenn du von cyrus 2.1 auf 2.2 umsteigst, musst du die Datenbank konvertieren, denn das Format hat sich geändert. Wenn beide Server noch laufen, kannst du das ganze auch mit imapsync machen, dann ist Datenbankformat kein Problem. Da kannst du selbst von cyrus auf dovecot umstellen. Hab ich letztens bei einem Kunden auch so gemacht.
 
OP
C

carsten

Guru
Hy,

sorry, ich melde mich erst jetzt.

Ich habs inzwischen geschafft.

Zuerst mal ist das ein Home-Server, keiner direkt im Netz, also keine Panik.
Durch Umbenennen der alten Verzeichnisse /var/lib/imap und /var/lib/spool und Neuinstallieren von cyrus habe ich die Strukturen neu gebaut bekommen.

Das Verzeichnis /var/spool/imap/user auf den neuen Server kopiert, bei Bedarf die Besitzer aller Dateien auf cyrus:mail geändert

Auf dem alten Server die Postfächer gesichert mit
Code:
su cyrus -c "/usr/lib/cyrus/bin/ctl_mboxlist -d" >/var/lib/imap/mailboxes.txt
Diese Datei dann an die gleiche Stelle auf dem neuen Server rüber kopiert und mit
Code:
su cyrus -c "/usr/lib/cyrus/bin/ctl_mboxlist -u" </var/lib/imap/mailboxes.txt
die Postfächer wieder angelegt.
Dann ein freundliches
Code:
/usr/lib/cyrus/bin/reconstruct -rf *
und alles ist da.

Nicht vergessen: Wenn der Server ein anderer ist und sich der Hostname geändert hat muss die saslpasswd2 neu angelegt werden, da hier der Hostname mit drin steht bei jedem Eintrag.
Die Confs natürlich auch entsprechend ändern.
Das brauchte ich bisher nie, da es immer nur eine Installation in einer neuen Suse auf dem gleichen Gerät war...

Ich war halt nur verwirrt, weil die Berechtigungen plötzlich andere waren und damit nichts gepasst hat. Umgezogen bin ich schon mehrfach, aber nie auf eine andere Maschine, und jedesmal ist es ein Quell der Freud. So oft mache ich es eben nicht, alle 1-2 Jahre mal.

Danke für die richtigen Denkanstösse
 
Oben