Dovecot dsync

Dieses Thema im Forum "Allgemein" wurde erstellt von fueber, 12. Mai 2015.

  1. fueber

    fueber New Member

    Hallo,

    ich habe ein Problem mit meiner Konfiguration vom Dovecot
    Ich muss da ich Altlasten mit herumschleppe die Funktion Anmelden mit anderen Benutzernamen verwenden.

    wenn sich der benutzer mit seiner Email Adresse anmeldet funktioniert der dsync daemon wie gewünscht. Loggt er sich aber mit den freigewählten Benutzernamen ein versucht er die veränderung mit den benutzernamen zu syncen bzw nur die quotas

    May 12 07:42:09 mailbox dovecot: dsync-server(balbla113): Error: mkdir_parents(/var/vmail//blabla113) failed: Permission denied
    May 12 07:42:09 mailbox dovecot: dsync-server(blabla113): Error: dict quota: Quota update failed, it's now desynced
    May 12 07:42:09 mailbox dovecot: indexer-worker(blabla113): Indexed 5 messages in INBOX

    kennt das jemand?

    lg
    Bernhard
     
  2. wenkt

    wenkt New Member

    Hallo

    Ich habe das selbe Problem mit dovecot-imapd, aber leider noch keine Lösung. Auch ich nutze noch die "alten" Loginnamen.

    LG
    Thomas
     
  3. wenkt

    wenkt New Member

    Hier die Lösung (ISPConfig 3.0.5.4p8, Ubuntu 14.04 LTS, Dovecot 2.x):
    In der Datei /etc/dovecot/dovecot.conf werden die Einträge für quota und sieve nicht angepasst.

    Im Bereich plugin werden dazu der Domainpart (welcher leer ist und das // im Log erzeugt) sowie der Userpart verwendet. Richtigerweise muss da das Homeverzeichnis rein, welches den gesamten Pfad als Wert aufweist.

    Hier der alte und falsche Bereich:
    plugin {
    quota = dict:user::file:/var/vmail/%d/%n/.quotausage
    sieve=/var/vmail/%d/%n/.sieve
    }

    Und so muss das aussehen, dass es funktioniert:
    plugin {
    quota = dict:user::file:%h/.quotausage
    sieve=%h/.sieve
    }


    Bitte in der nächsten ISPConfig-Version anpassen!

    LG
    Thomas
     
  4. florian030

    florian030 Member

    Die Einträge sind beide in Ordnung und funktionieren problemlos. Du musst einen anderen Fehler irgendwo in der Config haben.

    Ich frage mich nur gerade, was quota und dsync miteinander gemeinsam haben....
     
  5. wenkt

    wenkt New Member

    Lies mal meinen Post. Bei mir tritt die Fehlermeldung bei imap auf.

    Einträge alt drin: Fehlermeldungen
    Einträge neubdrin: keine Fehlermeldungen

    Bei dsync wird wohl auch irgendwo das falsche Muster %d/%u drin sein
     
  6. florian030

    florian030 Member

    Das läuft hier und auf diversen anderen Servern mit dem ganz normalen Setup von ISPConfig. Ich bin mir daher ziemlich sicher, dass Dein Problem an Deiner Config und/oder der Dovecot-Version liegt, die Du verwendest. Ich stelle Dir gerne meine Config zur Verfügung - dann kannst Du vergleichen.

    Für die nächste Version muss da gar nichts angepasst werden....
     
  7. wenkt

    wenkt New Member

    Jaja.

    Solange sich die Benutzer mit der vollständigen Emailadresse anmelden, funktioniert das mit "/var/vmail/%d/%u" super. Das wird bei Dir der Fall sein.
    Nutzen die User jedoch einen anderen Loginnamen (z.B. namev), dann führt das Pfadmuster unweigerlich ins Falsche und erzeugt Fehlermeldungen. Darum ist hier "%h" als Wert notwendig.
     
  8. florian030

    florian030 Member

    Was gibt denn bei Dir ein "SELECT sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n'" ?
    Nimm doch in Dovecot mal "auth_debug=yes" und starte dovecot neu. Wenn Du logins ohne %d (domain) brauchst, warum passt Du dann nicht einfach auth_username_format an?
    %h ist das homedir des users. Und das ist für gewöhnich /var/vmail.
     
  9. wenkt

    wenkt New Member

    Diese Tabelle hat keine Column "sieve".

    Nochmals: Der SQL-Query in dovecot-sql.conf lautet:
    user_query = SELECT email as user, maildir as home, CONCAT('maildir:', maildir, '/Maildir') as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND disable%Ls = 'n' AND server_id = '1'

    Der wichtige Teil dort ist: maildir as home. Also ist %h gleich der Column "maildir".

    Nimm nun Deinen Query und lass Dir maildir anzeigen:
    SELECT maildir FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n'

    Et voila *g*. Genau das funktioniert nun auch bei "kurzen" Loginnamen.
     
  10. brt

    brt New Member

    sorry, daß ich den alten thread wieder aufwärme, aber nachdem ich auch über dieses problem gestolpert bin...

    Die Ursache des Problems erscheint mir auch wie ein Bug im ISPConfig. Die im OP genannten Fehler treten auf, wenn der user "vmail" keine Schreibrechte hat, dovecot versucht einen ordner namens "/var/vmail//bla1" zu erstellen um sein quotafile dort abzulegen, richtig wäre aber "/var/vmail/domain/bla1".

    Die Lösung mit "quota = dict:user::file:%h/.quotausage" erscheint mir auch logisch und funktioniert zumindest besser als auf der "Hauptebene" einen bla1 Ordner anlegen zu lassen. Tut man dies nicht und der vmail user hat Schreibrechte im Hauptordner, dann legt dovecot einen falschen Ordner für jeden User an! Und es kommt noch schlimmer: Wenn es zwei E-Mail-Adressen mit dem selben namen vor der Domain gibt, landet die quotadatei von info@domain1.com und info@domain2.com im selben Ordner. Eher suboptimal würde ich sagen.
     
    Zuletzt bearbeitet: 18. März 2016
  11. florian030

    florian030 Member

    Wenn das ein Fehler wäre, dann würde das sicherlich öfter auftreten. Ich denke, da passt eher an Deiner dovecot confiig etwas nicht so ganz. Ich habe zB
    Code:
    plugin {
      quota = dict:user::file:/var/vmail/%d/%n/.quotausage
      sieve=/var/vmail/%d/%n/.sieve
    }
    protocol imap {
      mail_plugins = quota imap_quota notify replication
    }
    
    protocol pop3 {
      pop3_uidl_format = %08Xu%08Xv
      mail_plugins = quota
    }
    
    protocol lda {
      mail_plugins = sieve quota notify replication
    }
    
    
     
  12. brt

    brt New Member

    Da muss ich leider widersprechen, der Fehler tritt auch auf wenn man die Dovecot Konfiguration garnicht anrührt.
    Verwendest Du als Login-Namen die E-Mailadresse? Wenn ich das mache tritt das Problem zB. nicht auf, deswegen denke ich, daß der Fehler nur auftritt wenn man das ISPConfig-Feature "Abweichenden Login Namen erlauben" nutzt. Zudem, wenn der User "vmail" Schreibrechte in /var/vmail hat, erscheint auch kein Fehler in den Logfiles sondern es wird einfach ein völlig unsinniger Ordner "/var/vmail//bla1" (anstelle von /var/vmail/domain/bla1) erstellt.
     
    Zuletzt bearbeitet: 19. März 2016
  13. wenkt

    wenkt New Member

    Ja, er tritt öfters auf. Aber nur, wenn kurze Loginnamen verwendet werden.

    @brt: pass es so an, wie ich es beschrieben habe und merk' Dir die Änderung für neue ispconfig-Versionen. Florian scheint zu sehr von seiner Meinung überzeugt zu sein.
     
  14. brt

    brt New Member

    Japp hab ich gemacht, danke btw. für die Lösung! Klappt wunderbar und erscheint absolut sinnvoll, wenn man sich die Mühe macht sich reinzudenken!
     

Diese Seite empfehlen