Hey all long time,
I recently upgraded Dovecot from 2.1.15 to 2.2.29.1 on my Debian Wheezy box and thought I'd tackle shared mailboxes.
I can grant fine, using SETACL in telnet
. SETACL mine vsun@test.domain.com lr . OK Setacl complete (0.596 + 0.000 + 0.595 secs). . GETACL mine
- ACL mine vsun@test.domain.com lr edward@test.domain.com lrwstipekxacd
However, logging in as vsun@test.domain.com, the logs shows the MASTER IN user doesn't get FQDN. Instead of edward@test.domain.com it just shows edward@test
How come it only show's a partial domain?
Thanks!
Here's my config: # 2.2.29.1 (e0b76e3): /usr/local/etc/dovecot/dovecot.conf # Pigeonhole version 0.4.18 (29cc74d) # OS: Linux 2.6.32-5-openvz-amd64 i686 Debian 7.11 auth_debug = yes auth_master_user_separator = * auth_mechanisms = plain login auth_socket_path = /usr/local/var/run/dovecot/auth-userdb debug_log_path = /var/log/dovecot-debug.log disable_plaintext_auth = no info_log_path = /var/log/dovecot-debug.log listen = * log_path = /var/log/dovecot-debug.log mail_debug = yes mail_gid = vmail mail_location = maildir:%h/Maildir mail_plugins = " quota" 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 namespace { list = children location = maildir:%%h/Maildir:INDEX=%h/Maildir/shared/%%u prefix = shared.%%u. separator = . subscriptions = no type = shared } namespace inbox { hidden = no inbox = yes list = 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 = . subscriptions = yes type = private } passdb { args = /usr/local/etc/dovecot/master-users driver = passwd-file master = yes pass = yes } passdb { args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext driver = ldap } plugin { acl = vfile acl_shared_dict = file:/home/%d/shared-mailboxes quota = maildir:User quota quota_rule = *:storage=1G quota_warning = storage=95%% quota-warning 95 %u %d quota_warning2 = storage=80%% quota-warning 80 %u %d sieve = file:~/sieve;active=~/.dovecot.sieve sieve_after = /usr/local/etc/dovecot/sieve.d/after/ sieve_max_actions = 32 sieve_max_redirects = 4 sieve_max_script_size = 1M sieve_quota_max_scripts = 0 sieve_quota_max_storage = 0 } postmaster_address = postmaster@test.domain.com protocols = imap pop3 lmtp sieve quota_full_tempfail = yes service auth { inet_listener { port = 12345 } unix_listener auth-userdb { group = vmail mode = 0600 user = vmail } } service imap-login { inet_listener imap { port = 143 } } service imap-postlogin { executable = script-login /usr/local/bin/postlogin.sh } service imap { executable = imap imap-postlogin } service lmtp { inet_listener lmtp { port = 24 } unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix user = postfix } } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 0 service_count = 1 vsz_limit = 64 M } service pop3-login { inet_listener pop3 { port = 110 } } service quota-warning { executable = script /usr/local/bin/quota-warning.sh unix_listener quota-warning { user = vmail } user = dovecot } ssl = no userdb { args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext driver = ldap } verbose_proctitle = yes protocol lmtp { mail_plugins = " quota quota sieve" } protocol lda { mail_plugins = " quota sieve" } protocol imap { mail_max_userip_connections = 20 mail_plugins = " quota imap_quota imap_acl acl" } protocol sieve { mail_debug = yes mail_max_userip_connections = 10 mail_plugins = managesieve_implementation_string = Dovecot Pigeonhole managesieve_logout_format = bytes=%i/%o managesieve_max_compile_errors = 5 managesieve_max_line_length = 65536 managesieve_notify_capability = managesieve_sieve_capability = } protocol pop3 { mail_max_userip_connections = 20 mail_plugins = " quota quota" }
Here's my log: Apr 15 07:17:44 auth: Debug: client in: AUTH 1 PLAIN service=imap session=7Fq7Wi9N84DAqAzk lip=192.168.12.229 rip=192.168.12.228 lport=143 rport=33011 Apr 15 07:17:44 auth: Debug: client passdb out: CONT 1 Apr 15 07:17:44 auth: Debug: client in: CONT<hidden> Apr 15 07:17:44 auth: Debug: ldap(vsun@test.domain.com,192.168.12.228,<7Fq7Wi9N84DAqAzk>): pass search: base=dc=nitido,dc=com scope=subtree filter=(&(|(uid= vsun@test.domain.com)(mailAlternateAddress=vsun@test.domain.com))(nimPimUserStatus=active)) fields=uid,userPassword Apr 15 07:17:44 auth: Debug: ldap(vsun@test.domain.com,192.168.12.228,<7Fq7Wi9N84DAqAzk>): result: userPassword=<hidden> uid=vsun@test.domain.com; uid,userPassword unused Apr 15 07:17:44 auth: Debug: ldap(vsun@test.domain.com,192.168.12.228,<7Fq7Wi9N84DAqAzk>): result: userPassword=<hidden> uid=vsun@test.domain.com Apr 15 07:17:44 auth: Debug: client passdb out: OK 1 user= vsun@test.domain.com Apr 15 07:17:44 auth: Debug: master in: REQUEST 2978611201 18284 1 c7599d3e61eb73c5f88a0faa9c510d86 session_pid=18285 request_auth_token Apr 15 07:17:44 auth: Debug: ldap(vsun@test.domain.com,192.168.12.228,<7Fq7Wi9N84DAqAzk>): user search: base=dc=nitido,dc=com scope=subtree filter=(&(|(uid= vsun@test.domain.com)(mailAlternateAddress=vsun@test.domain.com))(nimPimUserStatus=active)) fields=homeDirectory,quotaMailSoft Apr 15 07:17:44 auth: Debug: ldap(vsun@test.domain.com,192.168.12.228,<7Fq7Wi9N84DAqAzk>): result: quotaMailSoft=2048 homeDirectory=/home/ test.domain.com/vsun@test.domain.com; homeDirectory,quotaMailSoft unused Apr 15 07:17:44 auth: Debug: ldap(vsun@test.domain.com,192.168.12.228,<7Fq7Wi9N84DAqAzk>): result: quotaMailSoft=2048 homeDirectory=/home/ test.domain.com/vsun@test.domain.com Apr 15 07:17:44 auth: Debug: master userdb out: USER 2978611201 vsun@test.domain.com home=/home/test.domain.com/vsun@test.domain.com quota_rule=*:storage=2048M auth_token=f594cf479e39a82a1175d26368186c2e8c938630 Apr 15 07:17:44 imap-login: Info: Login: user=<vsun@test.domain.com>, method=PLAIN, rip=192.168.12.228, lip=192.168.12.229, mpid=18285, session=<7Fq7Wi9N84DAqAzk> Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Loading modules from directory: /usr/local/lib/dovecot Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Module loaded: /usr/local/lib/dovecot/lib01_acl_plugin.so Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Module loaded: /usr/local/lib/dovecot/lib02_imap_acl_plugin.so Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Module loaded: /usr/local/lib/dovecot/lib10_quota_plugin.so Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Module loaded: /usr/local/lib/dovecot/lib11_imap_quota_plugin.so Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Added userdb setting: plugin/master_user=vsun@test.domain.com Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Added userdb setting: plugin/quota_rule=*:storage=2048M Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Effective uid=1021, gid=1021, home=/home/test.domain.com/vsun@test.domain.com Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota root: name=User quota backend=maildir args= Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota rule: root=User quota mailbox=* bytes=2147483648 messages=0 Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota warning: bytes=2040109465 (95%) messages=0 reverse=no command=quota-warning 95 vsun@test.domain.com test.domain.com Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota warning: bytes=1717986918 (80%) messages=0 reverse=no command=quota-warning 80 vsun@test.domain.com test.domain.com Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota grace: root=User quota bytes=214748364 (10%) Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Namespace inbox: type=private, prefix=, sep=., inbox=yes, hidden=no, list=yes, subscriptions=yes location=maildir:/home/ test.domain.com/vsun@test.domain.com/Maildir Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: maildir++: root=/home/ test.domain.com/vsun@test.domain.com/Maildir, index=, indexpvt=, control=, inbox=/home/test.domain.com/vsun@test.domain.com/Maildir, alt= Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl: initializing backend with data: vfile Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl: acl username = vsun@test.domain.com Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl: owner = 1 Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: Global ACLs disabled Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Namespace : type=shared, prefix=shared.%u., sep=., inbox=no, hidden=no, list=children, subscriptions=no location=maildir:%h/Maildir:INDEX=/home/ test.domain.com/vsun@test.domain.com/Maildir/shared/%u Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: shared: root=/usr/local/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl: initializing backend with data: vfile Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl: acl username = vsun@test.domain.com Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl: owner = 0 Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: Global ACLs disabled Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: quota: quota_over_flag check: quota_over_script unset - skipping Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: file /home/ test.domain.com/vsun@test.domain.com/Maildir/dovecot-acl not found Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: file /home/ test.domain.com/vsun@test.domain.com/Maildir/.Sent/dovecot-acl not found Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: file /home/ test.domain.com/vsun@test.domain.com/Maildir/.Sent Messages/dovecot-acl not found Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: file /home/ test.domain.com/vsun@test.domain.com/Maildir/.Trash/dovecot-acl not found Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: file /home/ test.domain.com/vsun@test.domain.com/Maildir/.Drafts/dovecot-acl not found Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: file /home/ test.domain.com/vsun@test.domain.com/Maildir/.Deleted Messages/dovecot-acl not found Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: acl vfile: file /home/ test.domain.com/vsun@test.domain.com/Maildir/.Spam/dovecot-acl not found Apr 15 07:17:44 auth: Debug: master in: USER 1 edward@test service=imap Apr 15 07:17:44 auth: Debug: ldap(edward@test): user search: base=dc=nitido,dc=com scope=subtree filter=(&(|(uid=edward@test )(mailAlternateAddress=edward@test))(nimPimUserStatus=active)) fields=homeDirectory,quotaMailSoft Apr 15 07:17:44 auth: Debug: ldap(edward@test): no fields returned by the server Apr 15 07:17:44 auth: Info: ldap(edward@test): unknown user Apr 15 07:17:44 auth: Debug: userdb out: NOTFOUND 1 Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: auth USER input: Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota root: name=User quota backend=maildir args= Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota rule: root=User quota mailbox=* bytes=2147483648 messages=0 Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota warning: bytes=2040109465 (95%) messages=0 reverse=no command=quota-warning 95 edward@test test Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota warning: bytes=1717986918 (80%) messages=0 reverse=no command=quota-warning 80 edward@test test Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Quota grace: root=User quota bytes=214748364 (10%) Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: shared: Tried to access mails of nonexistent user edward@test Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: maildir++: root=/usr/local/var/run/dovecot/user-not-found/edward@test, index=, indexpvt=, control=, inbox=/usr/local/var/run/dovecot/user-not-found/edward@test, alt= Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Namespace : /usr/local/var/run/dovecot/user-not-found/edward@test doesn't exist yet, using default permissions Apr 15 07:17:44 imap(vsun@test.domain.com): Debug: Namespace : Using permissions from /usr/local/var/run/dovecot/user-not-found/edward@test: mode=0700 gid=default