Dovecot Shared Folders...

herfurthba

New Member
Dovecot - I brauche Hilfe...

Ich versuche unseren Uralt-Mailserver zu ersetzen und habe einen neuen Server mit Debian 6.0.3 aufgesetzt und Postfix mit Dovecot und MySQL installiert - nach dieser Anleitung: http://wyden.com/linux/mailserver/ma...ql-debian-etch

Alles läuft, aber meine user brauchen gemeinsame IMAP-Ordner...
Ich habe etwas konfiguriert und sehe den Ordner public im Thunderbird - nur leider grau und kursiv und ohne Kästchen zum Abonnieren.

Hier die Ausgabe von dovecot -n:
Code:
# 1.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-5-686 i686 Debian 6.0.3 ext3
   log_timestamp: %Y-%m-%d %H:%M:%S
    protocols: imap imaps pop3 pop3s
    ssl_cert_file: /etc/postfix/sslcert/mailserver.crt
    ssl_key_file: /etc/postfix/sslcert/mailserver.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(pop3): /usr/lib/dovecot/pop3-login
    mail_location: /emails/vmail/%d/%u
    mbox_write_locks: fcntl dotlock
    mail_executable(default): /usr/lib/dovecot/imap
    mail_executable(imap): /usr/lib/dovecot/imap
    mail_executable(pop3): /usr/lib/dovecot/pop3
    mail_plugins(default): acl imap_acl quota imap_quota
    mail_plugins(imap): acl imap_acl quota imap_quota
    mail_plugins(pop3):
    mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
    mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
    mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3
    namespace:
    type: private
    separator: /
    inbox: yes
    list: yes
    subscriptions: yes
    namespace:
    type: public
    separator: /
    prefix: public/
    location: maildir:/emails/vmail/public
    list: yes
    lda:
    postmaster_address: [email]postmaster@xxx.xx[/email]
    auth_socket_path: /var/run/dovecot/auth-master
    mail_plugin_dir: /usr/lib/dovecot/modules/lda
    mail_plugins: acl
    auth default:
    mechanisms: plain login
    passdb:
    driver: sql
    args: /etc/dovecot/dovecot-mysql.conf
    userdb:
    driver: sql
    args: /etc/dovecot/dovecot-mysql.conf
    socket:
    type: listen
    client:
    path: /var/spool/postfix/private/auth_dovecot
    mode: 432
    user: postfix
    group: postfix
    master:
    path: /var/run/dovecot/auth-master
    mode: 384
    user: vmail
    plugin:
    acl: vfile
Gestern habe ich per maildirmake.dovecot einen neuen Unterordner in public angelegt. Teilweise wie hier: http://www.left-click.us/blog/creati...0-imap-folders

Den konnte ich dann im Thunderbird als Unterordner sehen - nicht grau und nicht kursiv und mit Box zum Abonnieren. Wenn ich in den Ordner gehen wollte meldete Thunderbird einen Server-Fehler.

Mein mail.err log:
Code:
    Jan 25 13:27:54 mail spamd[13343]: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
    Jan 25 13:28:52 mail spamd[13360]: spamd: could not create INET socket on 127.0.0.1:783: Address already in use
    Jan 25 18:01:15 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:01:26 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:02:01 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:02:09 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:05:51 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:06:01 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:08:26 mail dovecot: IMAP(admin@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:08:36 mail dovecot: IMAP(admin@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:08:36 mail dovecot: IMAP(admin@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:08:41 mail dovecot: IMAP(admin@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:08:41 mail dovecot: IMAP(admin@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:08:56 mail dovecot: IMAP(admin@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:11:18 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:12:20 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:15:04 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:15:30 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:40:10 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:40:50 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 18:59:09 mail dovecot: IMAP(test.user@xxx.xx): opendir(/emails/vmail/public/.SPAM/new) failed: Permission denied (euid=5000(vmail) egid=5000(vmail) missing +r perm: /emails/vmail/public/.SPAM/new)
    Jan 25 19:00:21 mail dovecot: IMAP(test.user@xxx.xx): Panic: file acl-cache.c: line 294 (acl_cache_update): assertion failed: (obj_cache->my_current_rights != &negative_cache_entry)
    Jan 25 19:00:21 mail dovecot: IMAP(test.user@xxx.xx): Raw backtrace: imap() [0x80f0e1e] -> imap() [0x80f0e82] -> imap() [0x80f0809] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0x8afe) [0xb75b5afe] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0x5ffe) [0xb75b2ffe] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0x644e) [0xb75b344e] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(acl_object_have_right+0x25) [0xb75b1775] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(acl_storage_rights_ctx_have_right+0x5c) [0xb75b882c] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0xa6bd) [0xb75b76bd] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0xadf7) [0xb75b7df7] -> imap(mailbox_list_iter_next+0x12) [0x80b7212] -> imap() [0x8063290] -> imap() [0x8063eae] -> imap(cmd_list_full+0x4d8) [0x8064468] -> imap(cmd_list+0x19) [0x80647d9] -> imap() [0x8067b5c] -> imap() [0x8067c32] -> imap(client_handle_input+0x175) [0x8067eb5] -> imap(client_input+0x5f) [0x80686ef] -> imap(io_loop_handler_run+0xd6) [0x80f9aa6] -> imap(io_loop_run+0x20
    Jan 25 19:00:21 mail dovecot: IMAP(test.user@xxx.xx): ) [0x80f8f20] -> imap(main+0x5b4) [0x8070f24] -> /lib/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb7758c76] -> imap() [0x80603a1]
    Jan 25 19:00:21 mail dovecot: dovecot: child 15640 (imap) killed with signal 6 (core dumps disabled)
    Jan 25 19:23:20 mail dovecot: IMAP(test.user@xxx.xx): Panic: file acl-cache.c: line 294 (acl_cache_update): assertion failed: (obj_cache->my_current_rights != &negative_cache_entry)
    Jan 25 19:23:20 mail dovecot: IMAP(test.user@xxx.xx): Raw backtrace: imap() [0x80f0e1e] -> imap() [0x80f0e82] -> imap() [0x80f0809] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0x8afe) [0xb74f4afe] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0x5ffe) [0xb74f1ffe] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0x644e) [0xb74f244e] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(acl_object_have_right+0x25) [0xb74f0775] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(acl_storage_rights_ctx_have_right+0x5c) [0xb74f782c] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0xa6bd) [0xb74f66bd] -> /usr/lib/dovecot/modules/imap/lib01_acl_plugin.so(+0xadf7) [0xb74f6df7] -> imap(mailbox_list_iter_next+0x12) [0x80b7212] -> imap() [0x8063290] -> imap() [0x8063eae] -> imap(cmd_list_full+0x4d8) [0x8064468] -> imap(cmd_list+0x19) [0x80647d9] -> imap() [0x8067b5c] -> imap() [0x8067c32] -> imap(client_handle_input+0x175) [0x8067eb5] -> imap(client_input+0x5f) [0x80686ef] -> imap(io_loop_handler_run+0xd6) [0x80f9aa6] -> imap(io_loop_run+0x20
    Jan 25 19:23:20 mail dovecot: IMAP(test.user@xxx.xx): ) [0x80f8f20] -> imap(main+0x5b4) [0x8070f24] -> /lib/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0xb7697c76] -> imap() [0x80603a1]
    Jan 25 19:23:20 mail dovecot: dovecot: child 15969 (imap) killed with signal 6 (core dumps disabled)
Inzwischen bin ich verzweifelt. Das Dovecot Wiki ist nicht besonders ausführlich, wenn es um Namensräume geht. In unserem alten Cyrus würde ich einfach eine neue Mailbox anlegen, ACLs für anyone setzen und fertig. Hier bin ich einfach zu blöd.
Ich hoffe jemand weiß Rat. Danke.

MOD: Code Tags gesetzt.
 
Last edited by a moderator:
Es scheint als benutzt dein dovecot beim Anlegen neuer Ordner die falschen Zugriffsrechte.

http://wiki.dovecot.org/SharedMailboxes/Permissions

When creating a new mailbox, Dovecot v1.2+ copies the permissions from the mailbox root directory. For example with mboxes if you have directories:

Schau dir also nochmal die Permissions von /emails/vmail/ an und korrigiere die von /emails/vmail/public von Hand. Er sagt ja ziemlich deutlich dass dem Benutzer vmail Leserechte fehlen.

schöne Grüße,
Nils
 
Hi Nils. Danke. Der Ordner public und alles darin gehört dem Benutzer vmail und auch wenn alle Rechte auf 0777 gesetzt sind, ändert sich nichts...
 
Hi,

wir benutzen ein ähnliches Setup allerdings nicht mit mySQL-Auth sondern über Systemaccounts. Ich schau heute abend mal in unsere Config und melde mich nochmal.
 
gelöst

Hallo,

ich habe inzwischen so viel probiert, dass ich inzwischen den Fehler nicht mehr finde, aber es läuft inzwischen. Auch ein shared-Namensraum funktioniert inzwischen (jeder kann eigene Ordner per ACL freigeben und Berechtigte können dann abonnieren):

Code:
namespace private {
separator = /
prefix =
inbox = yes
subscriptions = yes
location = maildir:/var/vmail/%d/%n:LAYOUT=fs
}

namespace public {
separator = /
prefix = public/
inbox = no
hidden = no
list = children
subscriptions = no
location = maildir:/var/vmail/public:LAYOUT=fs
}

namespace shared {
separator = /
prefix = shared/
subscriptions = no
location = maildir:/var/vmail/%d:INDEX=/var/vmail/shared/%d:LAYOUT=fs
}

Was jetzt noch etwas stört: wir haben z.B. einen Ordner Fax, in dem der andere Server empfangene Faxe als PDF-Anhang einer Mail ablegt. Die sollen alle sehen können. Ich habe bis jetzt nur die Möglichkeit gefunden, einen Nutzer Fax anzulegen und seine INBOX für alle freizugeben. Klappt, aber im E-Mail-Client sieht man dann in der Ordnerstruktur shared -> Fax -> INBOX und muss alles aufklappen. Da wir ca. 8 solcher Ordner haben sieht das alles etwas unübersichtlich aus.
Lieber wäre mir z.B. einen Order Fax unter public zu haben, in den dann die Mails einsortiert werden. Wie geht das, wenn man also keine Mailbox anlegen will, sonder Mails für einen Alias direkt in einen public Ordner einsortieren lassen möchte?
 
Back
Top