Problem mit subscriptons/shared folder/dsync
Mike Fröhner
mikefroehner at gmx.de
Mo Jan 9 10:53:57 CET 2017
Hallo,
Ich habe ohne Erfolg das Topic auf der dovecot at dovecot.org mailing list
gepostet und versuche nun hier mein Glück.
Es geht um ein Problem mit der Replikation der subscriptions-Datei, wenn
ich shared folder abonieren möchte.
Wir haben einen Namespace definiert.
namespace public-test {
location = maildir:/opt/mail/_public/test
prefix = public/test/
separator = /
subscriptions = no
type = public
}
Es gibt 2 Ordner (Test1 und Test2) innerhalb dieses Namespaces, welche
mein Benutzer "ldaptestuser" mit der Gruppe "ldaptestgroup" abonieren soll.
Die dovecot-acl Datei in /opt/mail/_public/test und
/opt/mail/_public/test/.Test{1,2} sind alle gleich und enthalten die Zeile:
group=ldaptestgroup lrwstipekxa
Wenn ich mich nun über meinen User über einen Client (Thunderbird oder
Roundcubemail) einlogge sehe ich folgenden debug log:
dovecot: imap(ldaptestuser): Debug: acl: acl username = ldaptestuser
dovecot: imap(ldaptestuser): Debug: acl: owner = 0
dovecot: imap(ldaptestuser): Debug: acl: group added: domain users
dovecot: imap(ldaptestuser): Debug: acl: group added: ldaptestgroup
dovecot: imap(ldaptestuser): Debug: acl: group added: all_mailuser
Das Erstellen und Abonieren von privaten Ordnern funktioniert und wird
auf beide imap-Instanzen repliziert.
Nun versuche ich den shared folder zu abonieren. Ich kann den Ordner in
meinem Client abonieren und er wird mir auch danach angezeigt, nur
leider wird die subscriptions-Datei nicht (korrekt) repliziert auf die
jeweils zweite imap-Instanz:
imap-1 # cat subscriptions
Private1
public/test/Test1
imap-2 # cat subscriptions
Private1
Der debug log auf beiden Instanzen zeigt folgendes an:
dovecot: doveadm(<ip>,ldaptestuser): Debug: Effective uid=834603987,
gid=991, home=/opt/mail/ldaptestuser
dovecot: doveadm(<ip>,ldaptestuser): Debug: acl: No acl_shared_dict
setting - shared mailbox listing is disabled
dovecot: doveadm(<ip>,ldaptestuser): Debug: maildir++:
root=/opt/mail/_public/test, index=, indexpvt=, control=, inbox=, alt=
dovecot: doveadm(<ip>,ldaptestuser): Debug: acl: initializing backend
with data: vfile
dovecot: doveadm(<ip>,ldaptestuser): Debug: acl: acl username = ldaptestuser
dovecot: doveadm(<ip>,ldaptestuser): Debug: acl: owner = 0
dovecot: doveadm(<ip>,ldaptestuser): Debug: acl vfile: Global ACLs disabled
Für mich sieht es so aus, als würde doveadm() die Gruppen nicht prüfen
und/oder initialiserien.
Wie nur unschwer zu erkennen ist, benutzen wir ldap Benutzer und
Gruppen. Es funktioniert soweit alles, Mails usw. werden repliziert,
ausser diese eine kleine Replikation.
Ich frage mich, ob noch jemand anderes dieses oder ein ähnliches Setup
fährt und diese Erfahrungen gemacht hat.
Grüße,
Mike;
dovecot -n:
# 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.16 (fed8554)
# OS: Linux 3.10.0-327.10.1.el7.x86_64 x86_64 CentOS Linux release
7.2.1511 (Core)
auth_cache_size = 10 M
auth_cache_ttl = 6 hours
auth_debug = yes
auth_gssapi_hostname = $ALL
auth_username_format = %Ln
doveadm_password = # hidden, use -P to show it
doveadm_port = 12345
first_valid_uid = 1000000
haproxy_timeout = 5 secs
haproxy_trusted_networks = 10.0.0.0/8
lmtp_save_to_detail_mailbox = yes
mail_access_groups = all_mailuser
mail_debug = yes
mail_plugins = " mail_log notify replication acl"
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date index ihave duplicate mime foreverypart extracttext
mbox_write_locks = fcntl
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
separator = /
}
namespace public-test {
location = maildir:/opt/mail/_public/test
prefix = public/test/
separator = /
subscriptions = no
type = public
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf
default_fields = userdb_home=/opt/mail/%u
userdb_mail=maildir:/opt/mail/%u/Mails userdb_gid=vmail
driver = ldap
}
plugin {
acl = vfile
acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes.db
mail_debug = yes
mail_plugins = " mail_log notify replication acl imap_acl"
mail_replica = tcps:imap-1.office.test.domain
sieve = file:~/sieve;active=~/.dovecot.sieve
sieve_default = /etc/dovecot/sieve/default.sieve
sieve_global = /etc/dovecot/sieve/global/
}
protocols = imap lmtp sieve
recipient_delimiter = -
replication_dsync_parameters = -d -l 30 -U
service aggregator {
fifo_listener replication-notify-fifo {
mode = 0666
user = vmail
}
unix_listener replication-notify {
mode = 0666
user = vmail
}
}
service auth-worker {
process_min_avail = 1
}
service auth {
inet_listener {
port = 12245
}
process_min_avail = 1
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
unix_listener auth-userdb {
group = vmail
mode = 0666
user = vmail
}
}
service doveadm {
inet_listener {
port = 12345
ssl = yes
}
}
service imap-login {
inet_listener imaps {
port = 0
ssl = yes
}
inet_listener imaps_haproxy {
haproxy = yes
port = 10993
ssl = yes
}
}
service imap-postlogin {
executable = script-login /adm/scripts/dovecot_acl_groups.sh
user = $default_internal_user
}
service imap {
executable = imap imap-postlogin
}
service lmtp {
inet_listener lmtp {
port = 24
ssl = yes
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
service_count = 1
}
service replicator {
process_min_avail = 1
unix_listener replicator-doveadm {
mode = 0666
}
}
ssl = required
ssl_cert = </etc/pki/tls/certs/imap.office.test.domain.crt.pem
ssl_client_ca_file = /etc/pki/tls/cert.pem
ssl_key = # hidden, use -P to show it
ssl_protocols = !SSLv2 !SSLv3
userdb {
default_fields = home=/opt/mail/%u mail=maildir:/opt/mail/%u/Mails
gid=vmail
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-ldap.conf
default_fields = home=/opt/mail/%u mail=maildir:/opt/mail/%u/Mails
gid=vmail
driver = ldap
}
protocol lmtp {
mail_plugins = " mail_log notify replication acl sieve"
}
protocol lda {
mail_plugins = " mail_log notify replication acl sieve"
}
protocol imap {
mail_max_userip_connections = 50
mail_plugins = " mail_log notify replication acl imap_acl"
}
protocol sieve {
managesieve_implementation_string = Dovecot Pigeonhole
managesieve_logout_format = bytes=%i/%o
managesieve_max_line_length = 65536
}
local_name imap.test.domain {
ssl_cert = </etc/pki/tls/certs/star.test.domain.bundle.crt
ssl_key = # hidden, use -P to show it
}
Mehr Informationen über die Mailingliste Dovecot