Netgroup access program.

This commit is contained in:
christos 1999-03-02 13:59:17 +00:00
parent cf93b65b10
commit 7a3f6c58a0
6 changed files with 343 additions and 0 deletions

5
usr.bin/innetgr/Makefile Normal file
View File

@ -0,0 +1,5 @@
# $NetBSD: Makefile,v 1.1 1999/03/02 13:59:17 christos Exp $
PROG= innetgr
.include <bsd.prog.mk>

73
usr.bin/innetgr/innetgr.1 Normal file
View File

@ -0,0 +1,73 @@
.\" $NetBSD: innetgr.1,v 1.1 1999/03/02 13:59:17 christos Exp $
.\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Kimmo Suominen
.\"
.\" 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. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the NetBSD
.\" Foundation, Inc. and its contributors.
.\" 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
.\"
.Dd March 2, 1999
.Dt INNETGR 1
.Os
.Sh NAME
.Nm innetgr
.Nd check netgroup members
.Sh SYNOPSIS
.Nm
.Op Fl d Ar domain
.Op Fl h Ar host
.Op Fl u Ar user
.Op Fl v
.Ar netgroup
.Sh DESCRIPTION
.Nm
checks if the specified domain, host or user is a member of
the given netgroup. This program is does not produce any output
unless the verbose (
.Fl v
) flag is given.
.Sh DIAGNOSTICS
.Bl -tag -width Ds
.It 0
Successful completion.
.It 1
Name not found in group.
.It 2
Invalid usage.
.Sh SEE ALSO
.Xr netgroup 1 ,
.Xr innetgr 3 ,
.Xr netgroup 5
.Sh HISTORY
A
.Nm
utility appeared in
.Nx 1.4 .

98
usr.bin/innetgr/innetgr.c Normal file
View File

@ -0,0 +1,98 @@
/* $NetBSD: innetgr.c,v 1.1 1999/03/02 13:59:17 christos Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Christos Zoulas.
*
* 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. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the NetBSD
* Foundation, Inc. and its contributors.
* 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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>
__RCSID("$NetBSD: innetgr.c,v 1.1 1999/03/02 13:59:17 christos Exp $");
#include <stdio.h>
#include <unistd.h>
#include <netgroup.h>
static void usage __P((void)) __attribute__((__noreturn__));
int main __P((int, char *[]));
static void
usage()
{
extern char *__progname;
(void)fprintf(stderr,
"Usage: %s [-h <host>] [-u <user>] [-d <domain>] <netgroup>\n",
__progname);
exit(2);
}
int
main(argc, argv)
int argc;
char *argv[];
{
int c, ok, verbose = 0;
char *user = NULL;
char *host = NULL;
char *domain = NULL;
while ((c = getopt(argc, argv, "h:u:d:v")) != -1)
switch (c) {
case 'u':
user = optarg;
break;
case 'h':
host = optarg;
break;
case 'd':
domain = optarg;
break;
case 'v':
verbose = 1;
break;
default:
usage();
}
if (optind >= argc)
usage();
for(; optind < argc; optind++) {
ok = innetgr(argv[optind], host, user, domain);
if (verbose)
printf("%s: %d\n", argv[optind], ok);
if (ok)
return 0;
}
return 1;
}

View File

@ -0,0 +1,5 @@
# $NetBSD: Makefile,v 1.1 1999/03/02 13:59:55 christos Exp $
PROG= netgroup
.include <bsd.prog.mk>

View File

@ -0,0 +1,70 @@
.\" $NetBSD: netgroup.1,v 1.1 1999/03/02 13:59:55 christos Exp $
.\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Kimmo Suominen
.\"
.\" 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. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the NetBSD
.\" Foundation, Inc. and its contributors.
.\" 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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.
.\"
.Dd March 2, 1999
.Dt NETGROUP 1
.Os
.Sh NAME
.Nm netgroup
.Nd list netgroup members
.Sh SYNOPSIS
.Nm
.Op Fl dhu
.Ar netgroup
.Sh DESCRIPTION
.Nm
lists the members of specified netgroups. The type of members
is selected using the following options:
.Bl -tag -width Ds
.It Fl d
list domains
.It Fl h
list hosts (the default)
.It Fl u
list users
.Sh SEE ALSO
.Xr innetgr 1 ,
.Xr netgroup 5
.Sh HISTORY
A
.Nm
utility appeared in
.Nx 1.4 .
.Pp
The
.Nm
utility was contributed to the public domain
by Ken Lalonde (University of Toronto).

View File

@ -0,0 +1,92 @@
/* $NetBSD: netgroup.c,v 1.1 1999/03/02 13:59:55 christos Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Christos Zoulas.
*
* 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. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the NetBSD
* Foundation, Inc. and its contributors.
* 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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>
__RCSID("$NetBSD: netgroup.c,v 1.1 1999/03/02 13:59:55 christos Exp $");
#include <stdio.h>
#include <unistd.h>
#include <netgroup.h>
static void usage __P((void)) __attribute__((__noreturn__));
int main __P((int, char *[]));
static void
usage()
{
extern char *__progname;
(void)fprintf(stderr, "Usage: %s [-hud] <netgroup>\n", __progname);
exit(1);
}
int
main(argc, argv)
int argc;
char *argv[];
{
int c, i = 0;
const char *p[3];
while ((c = getopt(argc, argv, "hud")) != -1)
switch (c) {
case 'h':
i = 0;
break;
case 'u':
i = 1;
break;
case 'd':
i = 2;
break;
default:
usage();
}
if (optind >= argc)
usage();
for(; optind < argc; optind++) {
setnetgrent(argv[optind]);
while (getnetgrent(&p[0], &p[1], &p[2]))
if (p[i])
printf("%s\n", p[i]);
endnetgrent();
}
return 0;
}