j4i 2.3.4 doesn't fix this problem Am 23.11.2018 um 13:26 schrieb Harald Leithner: > I did a debug output of the dsync-server and found out that it queries > the userdb parameter but doesn't use it. > > --- > Debug: Loading modules from directory: /usr/lib/dovecot/modules > Debug: Module loaded: /usr/lib/dovecot/modules/lib01_acl_plugin.so > Debug: Module loaded: /usr/lib/dovecot/modules/lib02_lazy_expunge_plugin.so > Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so > Debug: Module loaded: /usr/lib/dovecot/modules/lib15_notify_plugin.so > Debug: Module loaded: /usr/lib/dovecot/modules/lib20_mail_log_plugin.so > Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm > Debug: Module loaded: > /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so > Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: > /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: > undefined symbol: expire_set_deinit (this is usually intentional, so > just ignore this message) > Debug: Module loaded: > /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so > Debug: Module loaded: > /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so > Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() > failed: > /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so: > undefined symbol: lucene_index_iter_deinit (this is usually intentional, > so just ignore this message) > Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: > /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined > symbol: fts_user_get_language_list (this is usually intentional, so just > ignore this message) > Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() > failed: > /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so: > undefined symbol: mail_crypt_box_get_pvt_digests (this is usually > intentional, so just ignore this message) > doveadm(u...@example.com)<27674><>: Debug: auth USER input: > u...@example.com userdb_path=2000/6 quota_rule=*:bytes=0M nice=0 > uid=1001 gid=1001 > doveadm(u...@example.com)<27674><>: Debug: Added userdb setting: > plugin/quota_rule=*:bytes=0M > doveadm(u...@example.com)<27674><>: Debug: Added userdb setting: > plugin/userdb_path=2000/6 > doveadm(u...@example.com): Debug: Effective uid=1001, gid=1001, > home=/storage1/vmail/ > doveadm(u...@example.com): Debug: Quota root: name=User quota > backend=dict args=:proxy::sqlquota > doveadm(u...@example.com): Debug: Quota rule: root=User quota mailbox=* > bytes=0 messages=0 > doveadm(u...@example.com): Debug: Quota rule: root=User quota > mailbox=#EXPUNGED bytes=+1073741824 messages=0 > doveadm(u...@example.com): Debug: Quota warning: bytes=0 (100%) > messages=0 reverse=no command=quota-warning 100 u...@example.com > doveadm(u...@example.com): Debug: Quota warning: bytes=0 (95%) > messages=0 reverse=no command=quota-warning 95 u...@example.com > doveadm(u...@example.com): Debug: Quota warning: bytes=0 (80%) > messages=0 reverse=no command=quota-warning 80 u...@example.com > doveadm(u...@example.com): Debug: Quota grace: root=User quota bytes=0 (10%) > doveadm(u...@example.com): Debug: dict quota: user=u...@example.com, > uri=proxy::sqlquota, noenforcing=0 > doveadm(u...@example.com): Debug: Namespace : type=private, > prefix=#EXPUNGED/, sep=, inbox=no, hidden=yes, list=no, subscriptions=no > location=mdbox:/storage1/fast/:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/:ALT=/storage1/slow/:VOLATILEDIR=/tmp/ > doveadm(u...@example.com): Debug: fs: root=/storage1/fast, > index=/storage1/indexes/vmail, indexpvt=, control=, inbox=, > alt=/storage1/slow > doveadm(u...@example.com): Debug: acl: initializing backend with data: vfile > doveadm(u...@example.com): Debug: acl: acl username = u...@example.com > doveadm(u...@example.com): Debug: acl: owner = 1 > doveadm(u...@example.com): Debug: acl vfile: Global ACLs disabled > doveadm(u...@example.com): Debug: Namespace : type=shared, > prefix=#Users/%u/, sep=/, inbox=no, hidden=no, list=children, > subscriptions=yes location=mdbox:%h/mdbox > doveadm(u...@example.com): Debug: shared: root=/var/run/dovecot, index=, > indexpvt=, control=, inbox=, alt= > doveadm(u...@example.com): Debug: acl: initializing backend with data: vfile > doveadm(u...@example.com): Debug: acl: acl username = u...@example.com > doveadm(u...@example.com): Debug: acl: owner = 0 > doveadm(u...@example.com): Debug: acl vfile: Global ACLs disabled > doveadm(u...@example.com): Debug: Namespace inbox: type=private, > prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes > location=mdbox:/storage1/fast/:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/:ALT=/storage1/slow/:VOLATILEDIR=/tmp/ > doveadm(u...@example.com): Debug: fs: root=/storage1/fast, > index=/storage1/indexes/vmail, indexpvt=, control=, inbox=, > alt=/storage1/slow > doveadm(u...@example.com): Debug: acl: initializing backend with data: vfile > doveadm(u...@example.com): Debug: acl: acl username = u...@example.com > doveadm(u...@example.com): Debug: acl: owner = 1 > doveadm(u...@example.com): Debug: acl vfile: Global ACLs disabled > doveadm(u...@example.com): Debug: quota: quota_over_flag check: > quota_over_script unset - skipping > dsync-remote(u...@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl > vfile: file /storage1/fast/mailboxes/dovecot-acl not found > dsync-remote(u...@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl > vfile: file > /storage1/fast/mailboxes/INBOX/iTrNiCs-DBOx-mAiLs/dovecot-acl not found > dsync-remote(u...@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl > vfile: file /storage1/fast/mailboxes/INBOX/test > kontakt/iTrNiCs-DBOx-mAiLs/dovecot-acl not found > dsync-remote(u...@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl > vfile: file > /storage1/fast/mailboxes/INBOX/test/iTrNiCs-DBOx-mAiLs/dovecot-acl not found > dsync-remote(u...@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl > vfile: file > /storage1/fast/mailboxes/INBOX/gsdfg/iTrNiCs-DBOx-mAiLs/dovecot-acl not > found > dsync-remote(u...@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: Namespace > : Using permissions from /storage1/fast: mode=0755 gid=default > dsync-remote(u...@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: Namespace > #EXPUNGED/: Using permissions from /storage1/fast: mode=0755 gid=default > --- > > > Am 23.11.2018 um 12:14 schrieb Harald Leithner: >> Hi, >> >> I tried to migrate my dovecot 2.2 to a new server with a other storage >> configuration and dovecot 2.3. >> >> New (and old) Server uses mysql for user information >> >> I use the following storage settings >> >> mail_home = /storage1/vmail/%{userdb:path} >> mail_location = >> mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} >> >> >> userdb:path is generated by the mysql query and ends in something like >> "2000/6" >> >> SQL: CONCAT(u.idAccount, '/', u.idUser) AS userdb_path >> >> If I login with imap dovecot is creating the INBOX on the correct path >> >> /storage1/fast/2000/6/mailboxes/INBOX >> >> btw. it creates a link to dbox-alt-root but without creating the target >> directory is this expected? >> >> Now if I start >> >> doveadm backup -u <username> remote:mailstore2 >> >> it ignores it seams that dsync-server doesn't make a database query and >> doesn't use the userdb_path field. It only uses >> >> /storage1/fast/mailboxes/INBOX >> >> as path. >> >> Is this a problem with my configuration? >> >> >> thx >> >> --- doveconf -n >> # 2.3.3 (dcead646b): /etc/dovecot/dovecot.conf >> # Pigeonhole version 0.5.3 (f018bbab) >> # OS: Linux 4.15.18-7-pve x86_64 Debian 9.6 zfs >> # Hostname: mailstore2 >> auth_cache_negative_ttl = 1 secs >> auth_cache_size = 10 M >> auth_cache_ttl = 1 secs >> auth_master_user_separator = * >> auth_mechanisms = PLAIN LOGIN APOP >> auth_verbose = yes >> default_client_limit = 600 >> default_vsz_limit = 512 M >> dict { >> lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext >> sqlacl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext >> sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext >> } >> disable_plaintext_auth = no >> first_valid_gid = 1001 >> first_valid_uid = 1001 >> hostname = mailstore2 >> imap_hibernate_timeout = 1 mins >> imap_id_log = * >> imap_id_send = * >> imap_idle_notify_interval = 10 mins >> imap_logout_format = bytes=%i/%o >> instance_name = mailstore2 >> last_valid_gid = 1001 >> last_valid_uid = 1001 >> lda_original_recipient_header = X-LDA-Original-To >> lmtp_rcpt_check_quota = yes >> login_greeting = ITronic Mail Store >> login_trusted_networks = 172.22.14.0/24 >> mail_cache_min_mail_count = 5 >> mail_gid = vmail >> mail_home = /storage1/vmail/%{userdb:path} >> mail_location = >> mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} >> mail_plugins = lazy_expunge acl quota mail_log notify >> mail_prefetch_count = 100 >> mail_server_admin = mailto:postmas...@example.com >> mail_server_comment = Mail System >> mail_shared_explicit_inbox = yes >> mail_uid = vmail >> 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 vacation-seconds >> mdbox_preallocate_space = yes >> namespace { >> hidden = yes >> list = no >> location = >> mdbox:/storage1/fast/%{userdb:path}:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} >> prefix = "#EXPUNGED/" >> subscriptions = no >> type = private >> } >> namespace { >> list = children >> location = mdbox:%%h/mdbox >> prefix = "#Users/%%u/" >> separator = / >> subscriptions = yes >> type = shared >> } >> namespace inbox { >> hidden = no >> inbox = yes >> location = >> mailbox Archvie { >> special_use = \Archive >> } >> mailbox Drafts { >> special_use = \Drafts >> } >> mailbox Sent { >> special_use = \Sent >> } >> mailbox Spam { >> special_use = \Junk >> } >> mailbox Trash { >> special_use = \Trash >> } >> prefix = >> separator = / >> subscriptions = yes >> type = private >> } >> passdb { >> args = /etc/dovecot/master-users >> driver = passwd-file >> master = yes >> result_success = continue-ok >> } >> passdb { >> args = /etc/dovecot/dovecot-sql.conf.ext >> driver = sql >> } >> plugin { >> acl = vfile >> acl_shared_dict = proxy::sqlacl >> last_login_dict = proxy::lastlogin >> last_login_key = # hidden, use -P to show it >> lazy_expunge = "#EXPUNGED/" >> lazy_expunge_only_last_instance = no >> mail_log_events = delete undelete expunge copy mailbox_delete >> mailbox_rename flag_change save mailbox_create >> mail_log_fields = uid box msgid size flags vsize from subject >> quota = dict:User quota::proxy::sqlquota >> quota_grace = 10%% >> quota_rule = *:storage=1024M >> quota_rule2 = "#EXPUNGED:storage=+1024M" >> quota_warning = storage=100%% quota-warning 100 %u >> quota_warning2 = storage=95%% quota-warning 95 %u >> quota_warning3 = storage=80%% quota-warning 80 %u >> recipient_delimiter = + >> sieve = file:~/sieve;active=~/.dovecot.sieve >> sieve_before = file:/storage1/vmail/%{userdb:idAccount}/ >> sieve_extensions = +vacation-seconds >> sieve_global = /etc/dovecot/sieve >> sieve_max_actions = 64 >> sieve_max_redirects = 8 >> sieve_max_script_size = 2M >> sieve_quota_max_scripts = 0 >> sieve_quota_max_storage = 64M >> sieve_vacation_default_period = 1d >> sieve_vacation_min_period = 1h >> } >> pop3_uidl_duplicates = rename >> protocols = imap lmtp sieve pop3 >> service auth-worker { >> user = $default_internal_user >> } >> service auth { >> inet_listener { >> port = 4180 >> } >> unix_listener auth-userdb { >> mode = 0666 >> } >> } >> service dict { >> unix_listener dict { >> group = vmail >> mode = 0666 >> } >> } >> service imap-hibernate { >> unix_listener imap-hibernate { >> group = vmail >> mode = 0666 >> } >> } >> service imap-login { >> inet_listener imap { >> port = 143 >> } >> inet_listener imaps { >> port = 993 >> ssl = yes >> } >> process_min_avail = 1 >> service_count = 0 >> } >> service imap { >> process_limit = 1024 >> unix_listener imap-master { >> user = dovecot >> } >> unix_listener imap { >> group = vmail >> mode = 0666 >> } >> vsz_limit = 512 M >> } >> service lmtp { >> inet_listener lmtp { >> address = 172.22.14.136 >> port = 24000 >> } >> unix_listener lmtp { >> mode = 0666 >> } >> } >> service managesieve-login { >> inet_listener sieve { >> port = 4190 >> } >> process_min_avail = 0 >> service_count = 1 >> vsz_limit = 64 M >> } >> service managesieve { >> process_limit = 50 >> } >> service pop3-login { >> inet_listener pop3 { >> port = 110 >> } >> inet_listener pop3s { >> port = 995 >> ssl = yes >> } >> process_min_avail = 20 >> service_count = 1 >> vsz_limit = 64 M >> } >> service pop3 { >> process_limit = 1024 >> } >> service quota-warning { >> executable = script /opt/scripts/quota-warning.sh >> unix_listener quota-warning { >> user = vmail >> } >> user = dovecot >> } >> shutdown_clients = no >> ssl_cert = </etc/dovecot/private/example.com.pem >> ssl_cipher_list = >> ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-CAMELLIA256-SHA:CAMELLIA128-SHA:CAMELLIA256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA >> ssl_dh = # hidden, use -P to show it >> ssl_key = # hidden, use -P to show it >> ssl_options = no_compression >> ssl_prefer_server_ciphers = yes >> submission_host = 192.168.14.198 >> syslog_facility = local0 >> userdb { >> driver = prefetch >> } >> userdb { >> args = /etc/dovecot/dovecot-sql.conf.ext >> driver = sql >> } >> valid_chroot_dirs = /storage1 >> verbose_proctitle = yes >> protocol imap { >> mail_max_userip_connections = 30 >> mail_plugins = imap_zlib lazy_expunge quota imap_quota acl imap_acl >> last_login mail_log notify >> } >> protocol lda { >> mail_plugins = lazy_expunge acl sieve quota mail_log notify >> } >> protocol lmtp { >> mail_plugins = lazy_expunge acl sieve quota mail_log notify >> } >> protocol sieve { >> mail_max_userip_connections = 10 >> managesieve_max_compile_errors = 5 >> managesieve_max_line_length = 65536 >> } >> protocol pop3 { >> mail_max_userip_connections = 10 >> mail_plugins = lazy_expunge acl last_login mail_log notify >> } >> --- >> >
-- Harald Leithner ITronic Wiedner Hauptstraße 120/5.1, 1050 Wien, Austria Tel: +43-1-545 0 604 Mobil: +43-699-123 78 4 78 Mail: leith...@itronic.at | itronic.at
signature.asc
Description: OpenPGP digital signature