Dotlock-Berechtigungsprobleme mit Dovecot und OS X 10.10.3 ++

726
Haru

Ich habe installiert dovecotauf OS X Yosemiteüber Homebrew. Aber aus irgendeinem Grund kann ich nicht mehr mit dem 10.10.3Systemupdate von Apple arbeiten. Es gibt ein unlösbares Berechtigungsproblem, wenn Dotlock-Dateien erstellt werden sollen, wenn dovecot auf die INBOXes zugreifen möchte. Interessanterweise hat Postfix keine Probleme beim Erstellen der Dotlock-Dateien in demselben Verzeichnis.

$ dovecot --version 2.2.18 

Das Standardpfad-Setup in OS X, das auch offiziell im Dovecot-Wiki unterstützt / dokumentiert ist. Ich möchte es so beibehalten, da Systemaktualisierungen normalerweise Berechtigungen hier sowieso ändern:

$ ls -lae /var/ ... drwxrwxr-x 3 root mail 102 Aug 14 18:52 mail ...  $ ls -lae /var/mail ... -rw------- 1 haru mail 542 Aug 14 18:53 haru ... 

Dies war mein erstes Setup bis OS X 10.10.2. Ich habe einige irrelevante Optionen aus der Ausgabe entfernt:

$ cat /usr/local/etc/dovecot/local.conf protocols = pop3 listen = localhost # Note: user _dovecot is member of the 'mail' group. default_internal_user = _dovecot default_login_user = _dovenull mail_location = mbox:~/.mail:INBOX=/var/mail/%u mail_privileged_group = mail 

Alles funktionierte gut, bis das OS X 10.10.3Update kam und plötzlich dovecot[PID]: pop3(haru): Error: setegid(privileged) failed: Operation not permittedFehler beim Abrufen von Mails ausgegeben wurden. Es konnte immer noch Mails abrufen, konnte diese aber nicht aus der INBOX löschen, so dass bei jedem Abruf immer wieder dieselben Mails eingingen.

Nach vielen Recherchen und zufälligen Versuchen fügte ich mail_access_groups = mailder Dovecot-Konfiguration hinzu. Ich verstehe nicht wirklich, was die Option genau macht.

$ cat /usr/local/etc/dovecot/local.conf  protocols = pop3 listen = localhost # Note: user _dovecot is member of the 'mail' group. default_internal_user = _dovecot default_login_user = _dovenull mail_location = mbox:~/.mail:INBOX=/var/mail/%u mail_privileged_group = mail mail_access_groups = mail 

Alles funktionierte wieder gut, bis OS X 10.10.5gestern das Update kam und plötzlich die Hölle verloren ging und es komplett versagte dovecot[PID]: pop3(haru): Fatal: setgroups(mail,) failed: Too many extra groups. Durch das Entfernen wurde mail_access_groups = maildieser Fehler behoben, die zuvor beschriebenen Fehlverhalten, die mit 10.10.3 begannen, wurden jedoch behoben. Am Ende musste ich die Dotfile-Sperre deaktivieren, indem ich den Standardeintrag dotlockaus der mbox_write_locksOption entfernte:

$ cat /usr/local/etc/dovecot/local.conf  protocols = pop3 listen = localhost # Note: user _dovecot is member of the 'mail' group. default_internal_user = _dovecot default_login_user = _dovenull mail_location = mbox:~/.mail:INBOX=/var/mail/%u mail_privileged_group = mail mbox_read_locks = fcntl mbox_write_locks = fcntl 

Vermisse ich hier etwas oder verstehe ich nicht? Warum funktioniert das Standard-Berechtigungssetup (wie in der Dokumentation von dovecot beschrieben) nicht? Vielleicht ist es sogar eine Art Inkompatibilität, die ab OS X 10.10.3 auftritt, oder ein Fehler in Dovecot?

1

1 Antwort auf die Frage

0
Heiko Rupp

Der Fehler bei ist setgroups()darauf zurückzuführen, dass dem Benutzer auf dem Computer, auf dem Dovecot ausgeführt wird, mehr als 16 Gruppen zugewiesen sind.

Führen Sie id -G <user>oder id <user>als root (oder als dieser Benutzer) aus, um die Anzahl der Gruppen anzuzeigen.

Leider weist macOS Benutzern eine Unmenge von Gruppen zu, um eine fein abgestimmte Zugriffskontrolle für Dinge wie Bildschirmfreigabe auszuführen. Glücklicherweise hat Dovecot eine Option, um Bereiche gültiger Gids festzulegen. So kannst du einstellen

last_valid_gid = 100 

Die Nummer kann für Sie unterschiedlich sein.

Ich bin nur darauf gestoßen und habe hier darüber geschrieben: http://pilhuhn.blogspot.com/2018/10/solution-for-dovecot-and-setgroups.html