[Dovecot] ACL plugin, public namespace, erroneous \HasNoChildren

Stefan Förster cite+dovecot-users at incertum.net
Thu Aug 6 06:08:25 EEST 2009


Hi,

dovecot 1.2.2 with a second namespace called "Public", mapped to
"/export/vmailboxes/public", LIST returning \HasNoChildren:

root at testvm06:~# cat /export/vmailboxes/public/dovecot-acl
user=cite lrwstiekxa
authenticated lrs
anyone lrs
root at testvm06:~# ls -l /export/vmailboxes/public/.announcements/dovecot-acl 
lrwxrwxrwx 1 root root 14 Aug  6 03:50 /export/vmailboxes/public/.announcements/dovecot-acl -> ../dovecot-acl

With ACL plugin enabled (notice the \HasNoChildren):

root at testvm06:~# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN AUTH=CRAM-MD5] Dovecot ready.
. login cite secret
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH ACL RIGHTS=texk QUOTA] Logged in
. list "" Public
* LIST (\Noselect \HasNoChildren) "." "Public"
. OK List completed.
. select Public.announcements
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1249522417] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1]
. OK [READ-WRITE] Select completed.

I included the select to show that filesystem permissions are OK.

Without ACL plugin (notice the \HasChildren here):

root at testvm06:~# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS AUTH=PLAIN AUTH=LOGIN AUTH=CRAM-MD5] Dovecot ready.
. login cite secret
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH QUOTA] Logged in
. list "" Public
* LIST (\Noselect \HasChildren) "." "Public"
. OK List completed.

Is this intended behaviour, am I just too stupid for ACLs or something
completely different? I wonder how clients are supposed to get a
listing of a public namespace...

dovecot -n:
# 1.2.2: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.26-2-amd64 x86_64 Debian 5.0.2 
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps managesieve
listen(default): *:143
listen(imap): *:143
listen(managesieve): *
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(managesieve): 
ssl_cert_file: /etc/ssl/owncerts/snakeoil.crt
ssl_key_file: /etc/ssl/private/snakeoil.key
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(managesieve): /usr/lib/dovecot/managesieve-login
verbose_proctitle: yes
mail_privileged_group: vmail
mail_location: maildir:~/Maildir
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(managesieve): /usr/lib/dovecot/managesieve
mail_process_size: 1024
mail_plugins(default): quota imap_quota fts fts_squat acl
mail_plugins(imap): quota imap_quota fts fts_squat acl
mail_plugins(managesieve): 
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
namespace:
  type: private
  separator: .
  inbox: yes
  list: yes
  subscriptions: yes
namespace:
  type: public
  separator: .
  prefix: Public.
  location: maildir:/export/vmailboxes/public
  list: yes
lda:
  postmaster_address: postmaster at test.cite.lan
  hostname: testvm06.test.cite.lan
  mail_plugins: quota sieve
  auth_socket_path: /var/run/dovecot/auth-master
auth default:
  mechanisms: plain login cram-md5
  passdb:
    driver: sql
    args: /etc/dovecot/dovecot-sql.conf
  userdb:
    driver: sql
    args: /etc/dovecot/dovecot-sql.conf
  socket:
    type: listen
    client:
      path: /var/spool/postfix/private/auth
      mode: 432
      user: postfix
      group: sasl
    master:
      path: /var/run/dovecot/auth-master
      mode: 384
      user: vmail
      group: vmail
plugin:
  quota: maildir:User quota
  quota_warning: storage=80%% /usr/local/bin/quota-warning.sh 80
  quota_warning: storage=95%% /usr/local/bin/quota-warning.sh 95
  sieve: ~/.dovecot.sieve
  sieve_storage: ~/sieve
  sieve_extensions: +imapflags
  fts: squat
  fts_squat: partial=4 full=10
  acl: vfile


Cheers
Stefan


More information about the dovecot mailing list