chown: fix user:group option parsing
Check that either user or group is correctly passed, and adapt documention according to that.
This commit is contained in:
parent
6e7743eb56
commit
a02d66b8fc
14
chown.1
14
chown.1
|
@ -11,15 +11,23 @@
|
|||
.Fl R
|
||||
.Op Fl H | L | P
|
||||
.Oc
|
||||
.Op Ar owner Op Ar :group
|
||||
.Ar owner Ns Op Pf : Op Ar group
|
||||
.Op Ar file ...
|
||||
.Nm
|
||||
.Op Fl h
|
||||
.Oo
|
||||
.Fl R
|
||||
.Op Fl H | L | P
|
||||
.Oc
|
||||
.Pf : Ar group
|
||||
.Op Ar file ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
sets the user or group id of each
|
||||
sets the user and/or group id of each
|
||||
.Ar file
|
||||
to the uid of
|
||||
.Ar owner
|
||||
or the gid of
|
||||
and/or the gid of
|
||||
.Ar group
|
||||
respectively.
|
||||
.Sh OPTIONS
|
||||
|
|
8
chown.c
8
chown.c
|
@ -40,8 +40,9 @@ chownpwgr(const char *path, struct stat *st, void *data, struct recursor *r)
|
|||
static void
|
||||
usage(void)
|
||||
{
|
||||
eprintf("usage: %s [-h] [-R [-H | -L | -P]] [owner][:[group]] "
|
||||
"file ...\n", argv0);
|
||||
eprintf("usage: %s [-h] [-R [-H | -L | -P]] owner[:[group]] file ...\n"
|
||||
" %s [-h] [-R [-H | -L | -P]] :group file ...\n",
|
||||
argv0, argv0);
|
||||
}
|
||||
|
||||
int
|
||||
|
@ -99,6 +100,9 @@ main(int argc, char *argv[])
|
|||
gid = estrtonum(group, 0, UINT_MAX);
|
||||
}
|
||||
}
|
||||
if (uid == (uid_t)-1 && gid == (gid_t)-1)
|
||||
usage();
|
||||
|
||||
for (argc--, argv++; *argv; argc--, argv++)
|
||||
recurse(*argv, NULL, &r);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user