Change the default uid/gid values for nobody/nogroup to 65534/65533.

The default values found in /etc/passwd and /etc/group are 65534, 65533.
In mountd.c, the defaults were -2, which was 65534 back when uid_t was 16bits.
Without this patch, a file created by root on an NFS exported volume without
the "-root=" export option will end up owned by uid 4**32 - 2.
When discussed on freebsd-current@, it seemed that users preferred the
values being changed to 65534/65533.
I have not added code to acquire these values from the databases, since
the mountd daemon might get "stuck" during startup waiting for a non-responsive
password database server.

Discussed on:	freebsd-current
This commit is contained in:
Rick Macklem 2017-05-14 00:38:41 +00:00
parent 3a462c983d
commit 947572b4ee
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=318262

View File

@ -230,9 +230,9 @@ static char **exnames;
static char **hosts = NULL;
static struct xucred def_anon = {
XUCRED_VERSION,
(uid_t)-2,
(uid_t)65534,
1,
{ (gid_t)-2 },
{ (gid_t)65533 },
NULL
};
static int force_v2 = 0;
@ -2893,8 +2893,8 @@ parsecred(char *namelist, struct xucred *cr)
/*
* Set up the unprivileged user.
*/
cr->cr_uid = -2;
cr->cr_groups[0] = -2;
cr->cr_uid = 65534;
cr->cr_groups[0] = 65533;
cr->cr_ngroups = 1;
/*
* Get the user's password table entry.