public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
* [patch 0/8]  mount ownership and unprivileged mount syscall (v4)
@ 2007-04-20 10:25 Miklos Szeredi
  2007-04-20 10:25 ` [patch 1/8] add user mounts to the kernel Miklos Szeredi
                   ` (10 more replies)
  0 siblings, 11 replies; 59+ messages in thread
From: Miklos Szeredi @ 2007-04-20 10:25 UTC (permalink / raw)
  To: akpm, serue, viro, linuxram, ebiederm
  Cc: linux-fsdevel, linux-kernel, containers

This patchset has now been bared to the "lowest common denominator"
that everybody can agree on.  Or at least there weren't any objections
to this proposal.

Andrew, please consider it for -mm.

Thanks,
Miklos
----

v3 -> v4:

 - simplify interface as much as possible, now only a single option
   ("user=UID") is used to control everything
 - no longer allow/deny mounting based on file/directory permissions,
   that approach does not always make sense

----
This patchset adds support for keeping mount ownership information in
the kernel, and allow unprivileged mount(2) and umount(2) in certain
cases.

The mount owner has the following privileges:

  - unmount the owned mount
  - create a submount under the owned mount

The sysadmin can set the owner explicitly on mount and remount.  When
an unprivileged user creates a mount, then the owner is automatically
set to the user.

The following use cases are envisioned:

1) Private namespace, with selected mounts owned by user.
   E.g. /home/$USER is a good candidate for allowing unpriv mounts and
   unmounts within.

2) Private namespace, with all mounts owned by user and having the
   "nosuid" flag.  User can mount and umount anywhere within the
   namespace, but suid programs will not work.

3) Global namespace, with a designated directory, which is a mount
   owned by the user.  E.g. /mnt/users/$USER is set up so that it is
   bind mounted onto itself, and set to be owned by $USER.  The user
   can add/remove mounts only under this directory.

The following extra security measures are taken for unprivileged
mounts:

 - usermounts are limited by a sysctl tunable
 - force "nosuid,nodev" mount options on the created mount

--

^ permalink raw reply	[flat|nested] 59+ messages in thread
* [patch 0/8] unprivileged mount syscall
@ 2007-04-04 18:30 Miklos Szeredi
  2007-04-04 18:30 ` [patch 7/8] allow unprivileged mounts Miklos Szeredi
  0 siblings, 1 reply; 59+ messages in thread
From: Miklos Szeredi @ 2007-04-04 18:30 UTC (permalink / raw)
  To: akpm; +Cc: linux-fsdevel, util-linux-ng

This patchset adds support for keeping mount ownership information in
the kernel, and allow unprivileged mount(2) and umount(2) in certain
cases.

This can be useful for the following reasons:

- mount(8) can store ownership ("user=XY" option) in the kernel
  instead, or in addition to storing it in /etc/mtab.  For example if
  private namespaces are used with mount propagations /etc/mtab
  becomes unworkable, but using /proc/mounts works fine

- fuse won't need a special suid-root mount/umount utility.  Plain
  umount(8) can easily be made to work with unprivileged fuse mounts

- users can use bind mounts without having to pre-configure them in
  /etc/fstab

All this is done in a secure way, and unprivileged bind and fuse
mounts are disabled by default and can be enabled through sysctl or
/proc/sys.

One thing that is missing from this series is the ability to restrict
user mounts to private namespaces.  The reason is that private
namespaces have still not gained the momentum and support needed for
painless user experience.  So such a feature would not yet get enough
attention and testing.  However adding such an optional restriction
can be done with minimal changes in the future, once private
namespaces have matured.

An earlier version of these patches have been discussed here:

  http://lkml.org/lkml/2005/5/3/64

--

^ permalink raw reply	[flat|nested] 59+ messages in thread

end of thread, other threads:[~2007-04-25  9:24 UTC | newest]

Thread overview: 59+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-20 10:25 [patch 0/8] mount ownership and unprivileged mount syscall (v4) Miklos Szeredi
2007-04-20 10:25 ` [patch 1/8] add user mounts to the kernel Miklos Szeredi
2007-04-21  7:55   ` Andrew Morton
2007-04-21  8:06     ` Miklos Szeredi
2007-04-21 13:14   ` Eric W. Biederman
2007-04-22  7:02     ` Miklos Szeredi
2007-04-22  7:43       ` Eric W. Biederman
2007-04-22  8:05         ` Miklos Szeredi
2007-04-22 16:22         ` Miklos Szeredi
2007-04-20 10:25 ` [patch 2/8] allow unprivileged umount Miklos Szeredi
2007-04-21  7:55   ` Andrew Morton
2007-04-21  8:01     ` H. Peter Anvin
2007-04-21  8:09     ` Miklos Szeredi
2007-04-21  8:36       ` Andrew Morton
2007-04-21 12:53         ` Eric W. Biederman
2007-04-22  6:47           ` Miklos Szeredi
2007-04-22  7:09             ` Eric W. Biederman
2007-04-22  7:32               ` Miklos Szeredi
2007-04-21 13:29   ` Eric W. Biederman
2007-04-22  7:05     ` Miklos Szeredi
2007-04-20 10:25 ` [patch 3/8] account user mounts Miklos Szeredi
2007-04-21  7:55   ` Andrew Morton
2007-04-21 13:37   ` Eric W. Biederman
2007-04-22  7:10     ` Miklos Szeredi
2007-04-22  7:49       ` Eric W. Biederman
2007-04-22  8:08         ` Miklos Szeredi
2007-04-20 10:25 ` [patch 4/8] propagate error values from clone_mnt Miklos Szeredi
2007-04-21 13:40   ` Eric W. Biederman
2007-04-20 10:25 ` [patch 5/8] allow unprivileged bind mounts Miklos Szeredi
2007-04-21 14:00   ` Eric W. Biederman
2007-04-22  7:19     ` Miklos Szeredi
2007-04-20 10:25 ` [patch 6/8] put declaration of put_filesystem() in fs.h Miklos Szeredi
2007-04-20 10:25 ` [patch 7/8] allow unprivileged mounts Miklos Szeredi
2007-04-21  7:55   ` Andrew Morton
2007-04-21  8:13     ` Miklos Szeredi
2007-04-21  8:23       ` Miklos Szeredi
2007-04-21 14:10     ` Eric W. Biederman
2007-04-21 15:43       ` Jan Engelhardt
2007-04-21 16:57         ` Eric W. Biederman
2007-04-21 17:10           ` Jan Engelhardt
2007-04-21 21:00             ` Eric W. Biederman
2007-04-22  8:19               ` Miklos Szeredi
2007-04-21 22:06     ` Andi Kleen
2007-04-21 21:33       ` Eric W. Biederman
2007-04-22  0:46     ` Shaya Potter
2007-04-20 10:25 ` [patch 8/8] allow unprivileged fuse mounts Miklos Szeredi
2007-04-21  7:55   ` Andrew Morton
2007-04-21  8:16     ` Miklos Szeredi
2007-04-21 14:18   ` Eric W. Biederman
2007-04-22  7:22     ` Miklos Szeredi
2007-04-20 12:42 ` [patch 0/8] mount ownership and unprivileged mount syscall (v4) Serge E. Hallyn
2007-04-20 16:33   ` Eric W. Biederman
2007-04-21  8:30 ` Majkls
2007-04-21  8:35   ` Miklos Szeredi
2007-04-25  0:04 ` Karel Zak
2007-04-25  1:04   ` Eric W. Biederman
2007-04-25  7:18   ` Miklos Szeredi
2007-04-25  9:23     ` Karel Zak
  -- strict thread matches above, loose matches on Subject: below --
2007-04-04 18:30 [patch 0/8] unprivileged mount syscall Miklos Szeredi
2007-04-04 18:30 ` [patch 7/8] allow unprivileged mounts Miklos Szeredi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox