21 Mar, 2018

1 commit

  • In order to support mounts from namespaces other than init_user_ns, fuse
    must translate uids and gids to/from the userns of the process servicing
    requests on /dev/fuse. This patch does that, with a couple of restrictions
    on the namespace:

    - The userns for the fuse connection is fixed to the namespace
    from which /dev/fuse is opened.

    - The namespace must be the same as s_user_ns.

    These restrictions simplify the implementation by avoiding the need to pass
    around userns references and by allowing fuse to rely on the checks in
    setattr_prepare for ownership changes. Either restriction could be relaxed
    in the future if needed.

    For cuse the userns used is the opener of /dev/cuse. Semantically the cuse
    support does not appear safe for unprivileged users. Practically the
    permissions on /dev/cuse only make it accessible to the global root user.
    If something slips through the cracks in a user namespace the only users
    who will be able to use the cuse device are those users mapped into the
    user namespace.

    Translation in the posix acl is updated to use the uuser namespace of the
    filesystem. Avoiding cases which might bypass this translation is handled
    in a following change.

    This change is stronlgy based on a similar change from Seth Forshee and
    Dongsu Park.

    Cc: Seth Forshee
    Cc: Dongsu Park
    Signed-off-by: Eric W. Biederman
    Signed-off-by: Miklos Szeredi

    Eric W. Biederman
     

01 Oct, 2016

1 commit

  • Add a new INIT flag, FUSE_POSIX_ACL, for negotiating ACL support with
    userspace. When it is set in the INIT response, ACL support will be
    enabled. ACL support also implies "default_permissions".

    When ACL support is enabled, the kernel will cache and have responsibility
    for enforcing ACLs. ACL xattrs will be passed to userspace, which is
    responsible for updating the ACLs in the filesystem, keeping the file mode
    in sync, and inheritance of default ACLs when new filesystem nodes are
    created.

    Signed-off-by: Seth Forshee
    Signed-off-by: Miklos Szeredi

    Seth Forshee