9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: Tim Newsham <newsham@lava.net>
To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu>
Subject: Re: [9fans] Acme mailreader - now: User mode filesystems in linux
Date: Fri, 17 Dec 2004 14:13:35 -1000	[thread overview]
Message-ID: <Pine.BSI.4.58.0412171404520.4217@malasada.lava.net> (raw)
In-Reply-To: <20041217152456.3f377069.martin_ml@parvat.com>

> However, thinking over lunch, I realised that there is a way of doing
> something quite nice (in the linux sense, if not the Plan 9 sense!) with
> what we already have.
>
> On login, each user starts a user-filesystem-daemon, which uses setuid
> to create a /dev/cfsN, if necessary, opens it to start serving, and
> mounts it on a conventional place: $HOME/mnt, say.
[...]

I think it would be better to just implement the v9fs protocol
and let users mount it in a similar way as nfs.  The v9fs layer
in the kernel would simply communicate the kernel filesystem requests
over some pipe to another machine (or the same machine) in much
the same way as nfs requests get sent out.  The layer could support
options (or strictly enforce) to disable setuid bits and/or file
ownership.  A setuid mounting utility that enforced any no-setuid
options could allow users to perform mounts.  Userland filesystems
could be implemented by providing a service that adheres to
the v9fs.

Adding a seperate userland demon that proxies a filesystem
protocol (probably the same one) through to the kernel seems
like an uneeded layer of complexity.

It seems like there are a lot of projects out there that have
interest in providing userland filesystems.  They typically use
nfs because its the easiest vector into the existing infrastructure.
V9fs would definitely fill a useful niche.


> 2) The user-filesystem-daemon only has to run as root during initialisation,
> everything else runs as the user.

A network daemon talking v9fs shouldn't impose any ownership
restrictions.  The restrictions should be imposed at mount time.

> 3) The user-filesystem-daemon can enforce file ownership (as the user) in
> the served directory hierarchy. It can also force off setuid bits, etc.
> Furthermore, users can only attach their fileservers to their own daemons!
> (A bit like per-process mount tables - of course, linux has this already, but
> not in a very user-friendly form)

This can be done in-kernel.  In fact, there are already options in
nfs to neuter suid bits, device nodes and provide user mappings.

> 5) Knowledge of the Coda protocol could be limited to the daemon, and a
> higher-level protocol used with the "real" fileservers. Thus we could move to
> other kernel mechanisms (e.g. fuse) if/when they become available.

V9fs already provides a useful protocol.

> 6) All user filesystems are under $HOME/mnt - symlinks could be used
> from elsewhere. (or is this a disadvantage?)

Restrictions as to where mount points could be placed could be
put in any setuid binary that mediates user mounts.

Tim N.


  parent reply	other threads:[~2004-12-18  0:13 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-15 15:34 [9fans] Acme mailreader jim
2004-12-15 15:40 ` gdiaz
2004-12-15 15:47   ` jim
2004-12-15 15:50     ` Joseph Stewart
2004-12-15 15:57       ` jim
2004-12-15 16:10       ` Russ Cox
2004-12-15 15:58     ` Charles Forsyth
2004-12-15 16:04       ` jim
2004-12-15 16:24         ` C H Forsyth
2004-12-15 16:31           ` jim
2004-12-15 17:07             ` Russ Cox
2004-12-15 17:30               ` jim
2004-12-15 18:33                 ` Russ Cox
2004-12-15 18:49                   ` jim
2004-12-15 18:36               ` Axel Belinfante
2004-12-15 18:47                 ` jim
2004-12-15 18:51                 ` rog
2004-12-15 18:48             ` Skip Tavakkolian
2004-12-15 16:05       ` rog
2004-12-15 16:07 ` rog
2004-12-15 16:09   ` jim
2004-12-16  0:24     ` geoff
2004-12-16  4:12       ` Ronald G. Minnich
2004-12-16  4:51         ` geoff
2004-12-16  9:25           ` jim
2004-12-16  5:13         ` Skip Tavakkolian
2004-12-16  5:17           ` geoff
2004-12-16  5:20             ` boyd, rounin
2004-12-16  5:34               ` boyd, rounin
2004-12-16  5:29             ` Skip Tavakkolian
2004-12-16 15:54             ` Ronald G. Minnich
2004-12-16 17:52               ` Skip Tavakkolian
2004-12-16 18:13               ` Dave Eckhardt
2004-12-16  5:23           ` Andy Newman
2004-12-16 15:52           ` Ronald G. Minnich
2004-12-16  8:17       ` Martin C.Atkins
2004-12-16  9:35         ` jim
2004-12-16 15:19         ` rog
2004-12-16 15:26           ` jim
2004-12-16  9:30       ` jim
2004-12-16 15:08       ` David Leimbach
2004-12-16 23:22         ` geoff
2004-12-16 23:25           ` boyd, rounin
2004-12-16 23:38           ` Ronald G. Minnich
2004-12-17  1:31             ` Skip Tavakkolian
2004-12-17 15:50               ` Ronald G. Minnich
2004-12-17  4:55           ` [9fans] Acme mailreader - now: User mode filesystems in linux Martin C.Atkins
2004-12-17  9:54             ` Martin C.Atkins
2004-12-17 10:22               ` geoff
2004-12-17 10:45                 ` Martin C.Atkins
2004-12-17 11:42                 ` Andy Newman
2004-12-17 15:57                   ` Ronald G. Minnich
2004-12-17 12:30                 ` Latchesar Ionkov
2004-12-17 15:55                 ` Ronald G. Minnich
2004-12-17 13:41               ` Derek Fawcus
2004-12-17 14:42               ` Karl Magdsick
2004-12-17 14:56                 ` Russ Cox
2004-12-18  0:13               ` Tim Newsham [this message]
2004-12-18  0:13                 ` boyd, rounin
2004-12-18  3:49                   ` Ronald G. Minnich
2004-12-23 16:04                     ` boyd, rounin
2004-12-17 15:44             ` Ronald G. Minnich
2004-12-18 12:35               ` Martin C.Atkins
2004-12-17 18:52           ` [9fans] Acme mailreader David Leimbach
2004-12-17 23:20             ` Jack Johnson
2004-12-18  1:00               ` David Leimbach
2004-12-15 16:09 ` Russ Cox
2004-12-15 16:16   ` jim
2004-12-15 16:22   ` boyd, rounin
2004-12-17 15:31 [9fans] Acme mailreader - now: User mode filesystems in linux bmaroshe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.BSI.4.58.0412171404520.4217@malasada.lava.net \
    --to=newsham@lava.net \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).