aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcelo Araujo <araujo@FreeBSD.org>2014-10-16 02:24:19 +0000
committerMarcelo Araujo <araujo@FreeBSD.org>2014-10-16 02:24:19 +0000
commit3dd6b7ff3d14a70612eb4fea64e2b4c63652af05 (patch)
treebef6ab39965aef07bbf8b1749331202fc026117f
parentca6505b818d27268fd3d60c39d84364d19f9581c (diff)
Notes
-rw-r--r--sys/fs/nfsserver/nfs_nfsdsubs.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/sys/fs/nfsserver/nfs_nfsdsubs.c b/sys/fs/nfsserver/nfs_nfsdsubs.c
index de496dbbcf6a..72408b48cd8c 100644
--- a/sys/fs/nfsserver/nfs_nfsdsubs.c
+++ b/sys/fs/nfsserver/nfs_nfsdsubs.c
@@ -66,6 +66,16 @@ SYSCTL_INT(_vfs_nfsd, OID_AUTO, disable_checkutf8, CTLFLAG_RW,
&disable_checkutf8, 0,
"Disable the NFSv4 check for a UTF8 compliant name");
+static int enable_nobodycheck = 1;
+SYSCTL_INT(_vfs_nfsd, OID_AUTO, enable_nobodycheck, CTLFLAG_RW,
+ &enable_nobodycheck, 0,
+ "Enable the NFSv4 check when setting user nobody as owner");
+
+static int enable_nogroupcheck = 1;
+SYSCTL_INT(_vfs_nfsd, OID_AUTO, enable_nogroupcheck, CTLFLAG_RW,
+ &enable_nogroupcheck, 0,
+ "Enable the NFSv4 check when setting group nogroup as owner");
+
static char nfsrv_hexdigit(char, int *);
/*
@@ -1543,8 +1553,10 @@ nfsrv_checkuidgid(struct nfsrv_descript *nd, struct nfsvattr *nvap)
*/
if (NFSVNO_NOTSETUID(nvap) && NFSVNO_NOTSETGID(nvap))
goto out;
- if ((NFSVNO_ISSETUID(nvap) && nvap->na_uid == nfsrv_defaultuid)
- || (NFSVNO_ISSETGID(nvap) && nvap->na_gid == nfsrv_defaultgid)) {
+ if ((NFSVNO_ISSETUID(nvap) && nvap->na_uid == nfsrv_defaultuid &&
+ enable_nobodycheck == 1)
+ || (NFSVNO_ISSETGID(nvap) && nvap->na_gid == nfsrv_defaultgid &&
+ enable_nogroupcheck == 1)) {
error = NFSERR_BADOWNER;
goto out;
}