summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorKiyoshi Aman <kiyoshi.aman+adelie@gmail.com>2019-05-09 20:14:51 -0500
committerKiyoshi Aman <kiyoshi.aman+adelie@gmail.com>2019-05-10 14:50:07 -0500
commitddc7837510e320c9378252027cce21f836bfcd16 (patch)
tree1778c9aa7998789f466fbdcf99a3cfca4b1e5827 /bin
parentcd77eadd1bebba97178906fa68fa1fb05d30375f (diff)
downloaduserland-ddc7837510e320c9378252027cce21f836bfcd16.tar.gz
userland-ddc7837510e320c9378252027cce21f836bfcd16.tar.bz2
userland-ddc7837510e320c9378252027cce21f836bfcd16.tar.xz
userland-ddc7837510e320c9378252027cce21f836bfcd16.zip
bin/chgrp: remove standalone chgrp, chown project provides chgrp already.
Diffstat (limited to 'bin')
-rw-r--r--bin/chgrp/chgrp.1164
-rw-r--r--bin/chgrp/chown.8181
-rw-r--r--bin/chgrp/chown.c284
3 files changed, 0 insertions, 629 deletions
diff --git a/bin/chgrp/chgrp.1 b/bin/chgrp/chgrp.1
deleted file mode 100644
index ffdd5a6..0000000
--- a/bin/chgrp/chgrp.1
+++ /dev/null
@@ -1,164 +0,0 @@
-.\" Copyright (c) 1983, 1990, 1993, 1994, 2003
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" This code is derived from software contributed to Berkeley by
-.\" the Institute of Electrical and Electronics Engineers, Inc.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" from: @(#)chgrp.1 8.3 (Berkeley) 3/31/94
-.\" $NetBSD: chgrp.1,v 1.8 2017/07/04 06:52:20 wiz Exp $
-.\"
-.Dd October 22, 2012
-.Dt CHGRP 1
-.Os
-.Sh NAME
-.Nm chgrp
-.Nd change group
-.Sh SYNOPSIS
-.Nm
-.Oo
-.Fl R
-.Op Fl H | Fl L | Fl P
-.Oc
-.Op Fl fhv
-.Ar group
-.Ar
-.Nm
-.Oo
-.Fl R
-.Op Fl H | Fl L | Fl P
-.Oc
-.Op Fl fhv
-.Fl Fl reference=rfile
-.Ar
-.Sh DESCRIPTION
-The
-.Nm
-utility sets the group ID of the file named by each
-.Ar file
-operand to the
-.Ar group
-ID specified by the group operand.
-.Pp
-Options:
-.Bl -tag -width Ds
-.It Fl H
-If the
-.Fl R
-option is specified, symbolic links on the command line are followed.
-(Symbolic links encountered in the tree traversal are not followed.)
-.It Fl L
-If the
-.Fl R
-option is specified, all symbolic links are followed.
-.It Fl P
-If the
-.Fl R
-option is specified, no symbolic links are followed.
-.It Fl R
-Change the group ID for the file hierarchies rooted
-in the files instead of just the files themselves.
-.It Fl f
-The force option ignores errors, except for usage errors and doesn't
-query about strange modes (unless the user does not have proper permissions).
-.It Fl h
-If
-.Ar file
-is a symbolic link, the group of the link is changed.
-.It Fl v
-Cause
-.Nm
-to be verbose, showing files as they are processed.
-.El
-.Pp
-If
-.Fl h
-is not given, unless the
-.Fl H
-or
-.Fl L
-option is set,
-.Nm
-on a symbolic link always succeeds and has no effect.
-The
-.Fl H ,
-.Fl L
-and
-.Fl P
-options are ignored unless the
-.Fl R
-option is specified.
-In addition, these options override each other and the
-command's actions are determined by the last one specified.
-The default is as if the
-.Fl P
-option had been specified.
-.Pp
-The
-.Ar group
-operand can be either a group name from the group database,
-or a numeric group ID.
-Since it is valid to have a group name that is numeric (and
-doesn't have the numeric ID that matches its name) the name lookup
-is always done first.
-Preceding the ID with a ``#'' character will force it to be taken
-as a number.
-.Pp
-The user invoking
-.Nm
-must belong to the specified group and be the owner of the file,
-or be the super-user.
-.Pp
-Unless invoked by the super-user,
-.Nm
-clears the set-user-id and set-group-id bits on a file to prevent
-accidental or mischievous creation of set-user-id or set-group-id
-programs.
-.Sh FILES
-.Bl -tag -width /etc/group -compact
-.It Pa /etc/group
-Group ID file
-.El
-.Sh EXIT STATUS
-.Ex -std chgrp
-.Sh SEE ALSO
-.Xr chown 2 ,
-.Xr lchown 2 ,
-.Xr fts 3 ,
-.Xr group 5 ,
-.Xr passwd 5 ,
-.Xr symlink 7 ,
-.Xr chown 8
-.Sh STANDARDS
-The
-.Nm
-utility is expected to be POSIX 1003.2 compatible.
-.Pp
-The
-.Fl v
-option and the use of ``#'' to force a numeric group ID
-are extensions to
-.St -p1003.2 .
diff --git a/bin/chgrp/chown.8 b/bin/chgrp/chown.8
deleted file mode 100644
index a4cd79d..0000000
--- a/bin/chgrp/chown.8
+++ /dev/null
@@ -1,181 +0,0 @@
-.\" Copyright (c) 1990, 1991, 1993, 1994, 2003
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.\" from: @(#)chown.8 8.3 (Berkeley) 3/31/94
-.\" $NetBSD: chown.8,v 1.12 2017/07/04 06:53:12 wiz Exp $
-.\"
-.Dd September 11, 2016
-.Dt CHOWN 8
-.Os
-.Sh NAME
-.Nm chown
-.Nd change file owner and group
-.Sh SYNOPSIS
-.Nm
-.Oo
-.Fl R
-.Op Fl H | Fl L | Fl P
-.Oc
-.Op Fl fhv
-.Ar owner Ns Op Ar :group
-.Ar
-.Nm
-.Oo
-.Fl R
-.Op Fl H | Fl L | Fl P
-.Oc
-.Op Fl fhv
-.Ar :group
-.Ar
-.Nm
-.Oo
-.Fl R
-.Op Fl H | Fl L | Fl P
-.Oc
-.Op Fl fhv
-.Fl Fl reference=rfile
-.Ar
-.Sh DESCRIPTION
-.Nm
-sets the user ID and/or the group ID of the specified files.
-Symbolic links named by arguments are silently left unchanged unless
-.Fl h
-is used.
-.Pp
-The options are as follows:
-.Bl -tag -width Ds
-.It Fl H
-If the
-.Fl R
-option is specified, symbolic links on the command line are followed.
-(Symbolic links encountered in the tree traversal are not followed.)
-.It Fl L
-If the
-.Fl R
-option is specified, all symbolic links are followed.
-.It Fl P
-If the
-.Fl R
-option is specified, no symbolic links are followed.
-.It Fl R
-Change the user ID and/or the group ID for the file hierarchies rooted
-in the files instead of just the files themselves.
-.It Fl f
-Do not report any failure to change file owner or group, nor modify
-the exit status to reflect such failures.
-.It Fl h
-If
-.Ar file
-is a symbolic link, the owner and/or group of the link is changed.
-.It Fl v
-Cause
-.Nm
-to be verbose, showing files as they are processed.
-.El
-.Pp
-The
-.Fl H ,
-.Fl L
-and
-.Fl P
-options are ignored unless the
-.Fl R
-option is specified.
-In addition, these options override each other and the
-command's actions are determined by the last one specified.
-The default is as if the
-.Fl P
-option had been specified.
-.Pp
-The
-.Fl R
-option cannot be used together with the
-.Fl h
-option.
-.Pp
-The
-.Ar owner
-and
-.Ar group
-operands are both optional, however, one must be specified.
-If the
-.Ar group
-operand is specified, it must be preceded by a colon (``:'') character.
-.Pp
-The
-.Ar owner
-may be either a user name or a numeric user ID.
-The
-.Ar group
-may be either a group name or a numeric group ID.
-Since it is valid to have a user or group name that is numeric (and
-does not have the numeric ID that matches its name) the name lookup
-is always done first.
-Preceding an ID with a ``#'' character will force it to be taken
-as a number.
-.Pp
-The ownership of a file may only be altered by a super-user for
-obvious security reasons.
-.Pp
-Unless invoked by the super-user,
-.Nm
-clears the set-user-id and set-group-id bits on a file to prevent
-accidental or mischievous creation of set-user-id and set-group-id
-programs.
-.Sh EXIT STATUS
-.Ex -std chown
-.Sh COMPATIBILITY
-Previous versions of the
-.Nm
-utility used the dot (``.'') character to distinguish the group name.
-This has been changed to be a colon (``:'') character so that user and
-group names may contain the dot character.
-.Sh SEE ALSO
-.Xr chflags 1 ,
-.Xr chgrp 1 ,
-.Xr find 1 ,
-.Xr chown 2 ,
-.Xr lchown 2 ,
-.Xr fts 3 ,
-.Xr symlink 7
-.Sh STANDARDS
-The
-.Nm
-command is specified by POSIX.1-2017.
-.Pp
-The
-.Fl v
-and
-.Fl f
-options and the use of ``#'' to force a numeric lookup
-are extensions to
-.St -p1003.2 .
-.Sh HISTORY
-A
-.Nm
-utility appeared in
-.At v1 .
diff --git a/bin/chgrp/chown.c b/bin/chgrp/chown.c
deleted file mode 100644
index 493d103..0000000
--- a/bin/chgrp/chown.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/* $NetBSD: chown.c,v 1.8 2012/10/24 01:12:51 enami Exp $ */
-
-/*
- * Copyright (c) 1988, 1993, 1994, 2003
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-#ifndef lint
-__COPYRIGHT("@(#) Copyright (c) 1988, 1993, 1994, 2003\
- The Regents of the University of California. All rights reserved.");
-#endif /* not lint */
-
-#ifndef lint
-#if 0
-static char sccsid[] = "@(#)chown.c 8.8 (Berkeley) 4/4/94";
-#else
-__RCSID("$NetBSD: chown.c,v 1.8 2012/10/24 01:12:51 enami Exp $");
-#endif
-#endif /* not lint */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <ctype.h>
-#include <dirent.h>
-#include <err.h>
-#include <errno.h>
-#include <locale.h>
-#include <fts.h>
-#include <grp.h>
-#include <pwd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <getopt.h>
-
-static void a_gid(const char *);
-static void a_uid(const char *);
-static id_t id(const char *, const char *);
-__dead static void usage(void);
-
-static uid_t uid;
-static gid_t gid;
-static int ischown;
-static const char *myname;
-
-int
-main(int argc, char **argv)
-{
- FTS *ftsp;
- FTSENT *p;
- int Hflag, Lflag, Rflag, ch, fflag, fts_options, hflag, rval, vflag;
- char *cp, *reference;
- int (*change_owner)(const char *, uid_t, gid_t);
-
- setprogname(*argv);
-
- (void)setlocale(LC_ALL, "");
-
- myname = getprogname();
- ischown = (myname[2] == 'o');
- reference = NULL;
-
- Hflag = Lflag = Rflag = fflag = hflag = vflag = 0;
- while ((ch = getopt(argc, argv, "HLPRfhv")) != -1)
- switch (ch) {
- case 'H':
- Hflag = 1;
- Lflag = 0;
- break;
- case 'L':
- Lflag = 1;
- Hflag = 0;
- break;
- case 'P':
- Hflag = Lflag = 0;
- break;
- case 'R':
- Rflag = 1;
- break;
- case 'f':
- fflag = 1;
- break;
- case 'h':
- /*
- * In System V the -h option causes chown/chgrp to
- * change the owner/group of the symbolic link.
- * 4.4BSD's symbolic links didn't have owners/groups,
- * so it was an undocumented noop.
- * In NetBSD 1.3, lchown(2) is introduced.
- */
- hflag = 1;
- break;
- case 'v':
- vflag = 1;
- break;
- case '?':
- default:
- usage();
- }
- argv += optind;
- argc -= optind;
-
- if (argc == 0 || (argc == 1 && reference == NULL))
- usage();
-
- fts_options = FTS_PHYSICAL;
- if (Rflag) {
- if (hflag) {
- errx(EXIT_FAILURE,
- "the -R and -h options "
- "may not be specified together.");
- }
- if (Hflag)
- fts_options |= FTS_COMFOLLOW;
- if (Lflag) {
- fts_options &= ~FTS_PHYSICAL;
- fts_options |= FTS_LOGICAL;
- }
- } else if (!hflag) {
- fts_options |= FTS_COMFOLLOW;
- }
-
- uid = (uid_t)-1;
- gid = (gid_t)-1;
- if (ischown) {
- if ((cp = strchr(*argv, ':')) != NULL) {
- *cp++ = '\0';
- a_gid(cp);
- }
- a_uid(*argv);
- } else {
- a_gid(*argv);
- }
- argv++;
-
- if ((ftsp = fts_open(argv, fts_options, NULL)) == NULL) {
- err(EXIT_FAILURE, "fts_open");
- }
-
- for (rval = EXIT_SUCCESS; (p = fts_read(ftsp)) != NULL;) {
- change_owner = chown;
- switch (p->fts_info) {
- case FTS_D:
- if (!Rflag) /* Change it at FTS_DP. */
- fts_set(ftsp, p, FTS_SKIP);
- continue;
- case FTS_DNR: /* Warn, chown, continue. */
- warnx("%s: %s", p->fts_path, strerror(p->fts_errno));
- rval = EXIT_FAILURE;
- break;
- case FTS_ERR: /* Warn, continue. */
- case FTS_NS:
- warnx("%s: %s", p->fts_path, strerror(p->fts_errno));
- rval = EXIT_FAILURE;
- continue;
- case FTS_SL: /* Ignore unless -h. */
- /*
- * All symlinks we found while doing a physical
- * walk end up here.
- */
- if (!hflag)
- continue;
- /*
- * Note that if we follow a symlink, fts_info is
- * not FTS_SL but FTS_F or whatever. And we should
- * use lchown only for FTS_SL and should use chown
- * for others.
- */
- change_owner = lchown;
- break;
- case FTS_SLNONE: /* Ignore. */
- /*
- * The only symlinks that end up here are ones that
- * don't point to anything. Note that if we are
- * doing a phisycal walk, we never reach here unless
- * we asked to follow explicitly.
- */
- continue;
- default:
- break;
- }
-
- if ((*change_owner)(p->fts_accpath, uid, gid) && !fflag) {
- warn("%s", p->fts_path);
- rval = EXIT_FAILURE;
- } else {
- if (vflag)
- printf("%s\n", p->fts_path);
- }
- }
- if (errno) {
- err(EXIT_FAILURE, "fts_read");
- }
- exit(rval);
- /* NOTREACHED */
-}
-
-static void
-a_gid(const char *s)
-{
- struct group *gr;
-
- if (*s == '\0') { /* Argument was "uid[:.]". */
- return;
- }
- gr = *s == '#' ? NULL : getgrnam(s);
- if (gr == NULL) {
- gid = id(s, "group");
- } else {
- gid = gr->gr_gid;
- }
- return;
-}
-
-static void
-a_uid(const char *s)
-{
- if (*s == '\0') { /* Argument was "[:.]gid". */
- return;
- }
- if (*s == '#' || uid_from_user(s, &uid) == -1) {
- uid = id(s, "user");
- }
- return;
-}
-
-static id_t
-id(const char *name, const char *type)
-{
- id_t val;
- char *ep;
-
- errno = 0;
- if (*name == '#') {
- name++;
- }
- val = (id_t)strtoul(name, &ep, 10);
- if (errno) {
- err(EXIT_FAILURE, "%s", name);
- }
- if (*ep != '\0') {
- errx(EXIT_FAILURE, "%s: invalid %s name", name, type);
- }
- return (val);
-}
-
-static void
-usage(void)
-{
-
- (void)fprintf(stderr,
- "Usage: %s [-fhv] %s file ...\n"
- "\t%s -R [-H | -L | -P] [-fv] file ...\n",
- myname, ischown ? "owner:group|owner|:group" : "group",
- myname);
- exit(EXIT_FAILURE);
-}