lkml.org 
[lkml]   [2007]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 1/8] add user mounts to the kernel
    On Fri, 20 Apr 2007 12:25:33 +0200 Miklos Szeredi <miklos@szeredi.hu> wrote:

    > From: Miklos Szeredi <mszeredi@suse.cz>
    >
    > Add ownership information to mounts.
    >
    > A new mount flag, MS_SETUSER is used to make a mount owned by a user.
    > If this flag is specified, then the owner will be set to the current
    > real user id and the mount will be marked with the MNT_USER flag. On
    > remount don't preserve previous owner, and treat MS_SETUSER as for a
    > new mount. The MS_SETUSER flag is ignored on mount move.

    So is a modified mount(8) needed? If so, is there some convenient way
    in which testers can get hold of it?

    > The MNT_USER flag is not copied on any kind of mount cloning:
    > namespace creation, binding or propagation. For bind mounts the
    > cloned mount(s) are set to MNT_USER depending on the MS_SETUSER mount
    > flag. In all the other cases MNT_USER is always cleared.
    >
    > For MNT_USER mounts a "user=UID" option is added to /proc/PID/mounts.
    > This is compatible with how mount ownership is stored in /etc/mtab.
    >
    > Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
    > ---
    >
    > Index: linux/fs/namespace.c
    > ===================================================================
    > --- linux.orig/fs/namespace.c 2007-04-20 11:55:02.000000000 +0200
    > +++ linux/fs/namespace.c 2007-04-20 11:55:05.000000000 +0200
    > @@ -227,6 +227,13 @@ static struct vfsmount *skip_mnt_tree(st
    > return p;
    > }
    >
    > +static void set_mnt_user(struct vfsmount *mnt)
    > +{
    > + BUG_ON(mnt->mnt_flags & MNT_USER);
    > + mnt->mnt_uid = current->uid;
    > + mnt->mnt_flags |= MNT_USER;
    > +}

    I'm a bit surprised to see this. Using uids in-kernel is all rather
    old-fashioned and restricted. I'd have expected

    mnt->user = get_uid(current->user);



    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-04-21 09:59    [W:4.798 / U:0.260 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site