[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
imap4d NAMESPACE
From: |
Sergey Poznyakoff |
Subject: |
imap4d NAMESPACE |
Date: |
Sun, 27 May 2001 12:12:51 +0300 |
Hi,
The imap4 namespace stuff is working. The framework is as follows:
when started without explicit namespace settings, the server sets
user's Personal namespace to his homedir, and Other Users' and
Shared namespaces to NIL. The command line otions -S (--shared-namespace)
and -O (--other-namespace) allow to set corresponding namespaces. For
example, when started as:
imap4d --other-namespace /home:/usr/home --shared-namespace /var/mail
server sets namespaces to:
01 NAMESPACE
01 * NAMESPACE (("" "/")) (("/home" "/")("/usr/home" "/"))
(("/var/mail" "/"))
01 OK NAMESPACE command completed
Additionally, a --paranoid command line option may be used to prevent
the user from getting list of other usernames on the server as
described in rfc2342:
A client can construct a LIST command by appending a "%" to the Other
Users' Namespace prefix to discover the Personal Namespaces of other
users that are available to the currently authenticated user.
<...>
Alternatively, a server MAY return NO to such a LIST command,
requiring that a user name be included with the Other Users'
Namespace prefix before listing any other user's mailboxes.
When this option is used the
02 LIST "/home" %
command will fail, whereas both
03 LIST "/home/smith" %
04 LIST "~smith" %
will succeed, unless the permissions on /home/smith prevent others from
listing the directory contents.
The references like
05 LIST "/home/smith/../../etc" %
are first converted to absolute pathspecs and are thus handled correctly.
There are some questions though:
1. Which is the proper default behaviour when no explicit namespaces
were set at invocation? The one I have currently implemented is the
most conservative (and maybe the safer) one. But there exist at least
two alternatives:
a) Set Shared namespace to "/", which is roughly equivalent to the
functionality of the daemon without NAMESPACE support.
b) Disable NAMESPACE functionality at all.
Which one is the best?
2. The Personal namespace is set on a per-user basis, whereas Other Users'
and Shared namespaces are global. It may be possible to select them on
a per-user basis also (say, using uid/gid) but that would mean having
some kind of user database apart from the system /etc/passwd.
3. How about multiple Personal namespaces? Could they be necessary?
What do you think?
Cheers,
Sergey
- imap4d NAMESPACE,
Sergey Poznyakoff <=