bug-mailutils
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]