Christoph Bußenius
2012-Mar-30 11:37 UTC
[Dovecot] Dovecot allows creation of folders outside of a user's directory
Hi,
in our dovecot 2.0 setup with shared folders, users can make dovecot
create directories outside their mail directory. Which is a bit scary imho.
The following command:
. create inbox.shared.abc123
or even
. create "inbox.shared.strange &ANY- characters"
-- even though it will fail with a "permission denied" error -- will
create a directory like "/mail/users/strange &ANY- characters".
That
directory will only contain a subdirectory "Maildir" and therein
dovecot-acl-list.
I think basically the reason for this behaviour is that Dovecot checks
whether the directory has enough ACLs for the user to access it, and
auto-creates the directory in the process. Is there way to avoid this
auto-creation - or maybe a way to make Dovecot check whether the
directory name is an existing username?
Here's a config to reproduce this:
# 2.0.19: /usr/local/dovecot/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-35-server x86_64 Ubuntu 10.04.4 LTS
auth_username_format = %Ln
disable_plaintext_auth = no
mail_gid = vmail
mail_home = /mail/users/%u
mail_location = maildir:~/Maildir
mail_plugins = " acl"
mail_uid = vmail
maildir_very_dirty_syncs = yes
namespace default {
inbox = yes
location prefix = INBOX.
separator = .
type = private
}
namespace sharedns {
inbox = no
list = children
location = maildir:/mail/users/%%u/Maildir
prefix = INBOX.shared.%%u.
separator = .
subscriptions = no
type = shared
}
passdb {
args = /usr/local/dovecot/etc/dovecot/users
driver = passwd-file
}
plugin {
acl = vfile:/usr/local/dovecot/etc/dovecot/global-acls:cache_secs=300
acl_shared_dict = file:/mail/vmail/shared-mailboxes.db
}
service auth {
unix_listener auth-userdb {
group = vmail
mode = 0660
}
}
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
syslog_facility = local6
userdb {
args = /usr/local/dovecot/etc/dovecot/users
driver = passwd-file
}
protocol lmtp {
mail_plugins = " sieve"
}
protocol imap {
imap_client_workarounds = tb-extra-mailbox-sep
mail_plugins = " acl imap_acl"
}
Content of the "users" file looks like this:
user1:{plain}(hidden):::user1:/mail/users/user1::
user2:{plain}(hidden):::user2:/mail/users/user2::
testuser:{plain}(hidden):::testuser:/mail/users/testuser::
Cheers,
Christoph
--
Christoph Bu?enius
Rechnerbetriebsgruppe der Fakult?ten Informatik und Mathematik
Technische Universit?t M?nchen
+49 89-289-18519 <> Raum 00.05.055 <> Boltzmannstr. 3 <>
Garching
Timo Sirainen
2012-Apr-04 01:35 UTC
[Dovecot] Dovecot allows creation of folders outside of a user's directory
On 30.3.2012, at 14.37, Christoph Bu?enius wrote:> in our dovecot 2.0 setup with shared folders, users can make dovecot create directories outside their mail directory. Which is a bit scary imho. > > The following command: > > . create inbox.shared.abc123 > > or even > > . create "inbox.shared.strange &ANY- characters" > > -- even though it will fail with a "permission denied" error -- will create a directory like "/mail/users/strange &ANY- characters". That directory will only contain a subdirectory "Maildir" and therein dovecot-acl-list.Fixed: http://hg.dovecot.org/dovecot-2.0/rev/b15889b82258