nfsd: knfsd must use the container user namespace
Convert knfsd to use the user namespace of the container that started the server processes. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
committed by
J. Bruce Fields
parent
e6667c73a2
commit
e45d1a1835
@@ -634,7 +634,7 @@ nfsd_map_name_to_uid(struct svc_rqst *rqstp, const char *name, size_t namelen,
|
||||
return nfserr_inval;
|
||||
|
||||
status = do_name_to_id(rqstp, IDMAP_TYPE_USER, name, namelen, &id);
|
||||
*uid = make_kuid(&init_user_ns, id);
|
||||
*uid = make_kuid(nfsd_user_namespace(rqstp), id);
|
||||
if (!uid_valid(*uid))
|
||||
status = nfserr_badowner;
|
||||
return status;
|
||||
@@ -651,7 +651,7 @@ nfsd_map_name_to_gid(struct svc_rqst *rqstp, const char *name, size_t namelen,
|
||||
return nfserr_inval;
|
||||
|
||||
status = do_name_to_id(rqstp, IDMAP_TYPE_GROUP, name, namelen, &id);
|
||||
*gid = make_kgid(&init_user_ns, id);
|
||||
*gid = make_kgid(nfsd_user_namespace(rqstp), id);
|
||||
if (!gid_valid(*gid))
|
||||
status = nfserr_badowner;
|
||||
return status;
|
||||
@@ -660,13 +660,13 @@ nfsd_map_name_to_gid(struct svc_rqst *rqstp, const char *name, size_t namelen,
|
||||
__be32 nfsd4_encode_user(struct xdr_stream *xdr, struct svc_rqst *rqstp,
|
||||
kuid_t uid)
|
||||
{
|
||||
u32 id = from_kuid(&init_user_ns, uid);
|
||||
u32 id = from_kuid_munged(nfsd_user_namespace(rqstp), uid);
|
||||
return encode_name_from_id(xdr, rqstp, IDMAP_TYPE_USER, id);
|
||||
}
|
||||
|
||||
__be32 nfsd4_encode_group(struct xdr_stream *xdr, struct svc_rqst *rqstp,
|
||||
kgid_t gid)
|
||||
{
|
||||
u32 id = from_kgid(&init_user_ns, gid);
|
||||
u32 id = from_kgid_munged(nfsd_user_namespace(rqstp), gid);
|
||||
return encode_name_from_id(xdr, rqstp, IDMAP_TYPE_GROUP, id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user