shared Folders in der Praxis
Thomas Bäumer
thomas at ctrl-c.de
Do Feb 6 21:24:27 CET 2020
Am 06.02.20 um 19:35 schrieb Martin Rabl:
> Hi,
> Ich hatte damit auch mal Probleme, da das Berechtigungssystem des Dovecot, was shared folder betrifft, IMHO ein wenig tricky (doof) Ist.
> Frage: nutzt Du eine Datenbank zur Verwaltung der Zugriffsrechte?
> Ich müsste nochmal nachsehen, aber unser System hat manchmal eine ordnende Hand :-) in der DB benötigt ... könnte auch eine Fehlkonfiguration gewesen sein. Muss mir die config(deine auch) ansehen.
>
> Viele Grüße,
> Martin Rabl
Hallo Martin,
Verwaltung der Zugriffsrechte? Also meine User liegen in einem openldap.
Von da hole ich neben email-Adresse, Quota und Password auch das homedir
für die Mails. uid und gid ist statisch auf 1000, was dem Systemuser
"vmail" entspricht:
# id -a vmail
uid=1000(vmail) gid=1000(vmail) groups=1000(vmail)
# doveadm user alice at domain.tld
field value
uid 1000
gid 1000
home /var/vmail/domain.tld/alice/
mail mdbox:/var/vmail/domain.tld/alice//mdbox
quota_rule *:bytes=20000000000
(guest-0999)root at ddir01:/etc/dovecot# doveadm user bob at domain.tld
field value
uid 1000
gid 1000
home /var/vmail/domain.tld/bob/
mail mdbox:/var/vmail/domain.tld/bob//mdbox
quota_rule *:bytes=10000000000
# ls /var/vmail/shared-mailboxes.db
-rw-rw---- 1 vmail vmail 90 Feb 6 16:50 /var/vmail/shared-mailboxes.db
Wobei hier alice=tbals ist. Habe ich dummerweise nicht immer gleich
anonymisiert.
Klar, meine config kann ich auch zeigen. Das ist jetzt ein "doveconf -n"
# 2.3.9.2 (cf2918cac): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.9 (db4e9a2f)
# OS: Linux 4.15.0-72-generic x86_64 Ubuntu 18.04.4 LTS
# Hostname: imap.domain.tld
auth_debug = yes
auth_master_user_separator = *
auth_mechanisms = plain login
auth_verbose = yes
disable_plaintext_auth = no
mail_attachment_dir = /var/vmail/%d/mail_attachments
mail_attachment_hash = %{sha256}
mail_debug = yes
mail_location = mdbox:%h/mdbox
mail_plugins = zlib acl quota
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 {
hidden = no
inbox = no
list = children
location = mdbox:%%h/mdbox
prefix = shared/%%u/
separator = /
subscriptions = yes
type = shared
}
namespace inbox {
hidden = no
inbox = yes
list = yes
location =
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Junk {
auto = subscribe
special_use = \Junk
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
prefix = INBOX/
separator = /
subscriptions = yes
type = private
}
passdb {
args = /etc/dovecot/master-users
driver = passwd-file
master = yes
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
plugin {
acl = vfile
acl_shared_dict = file:/var/vmail/shared-mailboxes.db
quota = dict:User quota::file:%h/dovecot-quota
quota_grace = 10%%
quota_rule = *:storage=1G
quota_status_nouser = DUNNO
quota_status_overquota = 552 5.2.2 Mailbox is full / Mailbox ist voll
quota_status_success = DUNNO
sieve = file:%h/sieve;active=%h/sieve.active
sieve_max_actions = 32
sieve_max_redirects = 4
sieve_max_script_size = 1M
zlib_save = gz
zlib_save_level = 6
}
protocols = " imap lmtp sieve"
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0666
}
unix_listener auth-userdb {
group = vmail
user = vmail
}
}
service lmtp {
inet_listener lmtp {
port = 24
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service quota-status {
client_limit = 1
executable = quota-status -p postfix
inet_listener {
port = 12340
}
}
ssl_cert = </etc/ssl/private/domain.tld.cert
ssl_key = # hidden, use -P to show it
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/dovecot-ldap.conf.ext
driver = ldap
}
verbose_proctitle = yes
protocol lmtp {
mail_plugins = zlib acl quota sieve
postmaster_address = postmaster at domain.tld
}
protocol imap {
mail_plugins = zlib acl quota imap_zlib imap_acl imap_quota
}
Was im logfile aus meiner letzten Mail auffällt, ist die letzte Zeile hier:
Debug: acl: initializing backend with data: vfile
Debug: acl: acl username = tbals
Debug: acl: owner = 0
Debug: acl vfile: Global ACLs disabled
Debug: Namespace : type=private, prefix=, sep=, inbox=no, hidden=yes,
list=no, subscriptions=no location=fail::LAYOUT=none
Da steht kein prefix mehr und bei location steht ein "fail". Ich
verstehe aber nicht wieso.
Gruss
Thomas
Mehr Informationen über die Mailingliste Dovecot