Merge branch 'vendor/GREP'
[dragonfly.git] / libexec / revnetgroup / revnetgroup.8
1 .\" Copyright (c) 1995
2 .\"     Bill Paul <wpaul@ctr.columbia.edu>.  All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
6 .\" are met:
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\"    notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\"    notice, this list of conditions and the following disclaimer in the
11 .\"    documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\"    must display the following acknowledgement:
14 .\"     This product includes software developed by Bill Paul.
15 .\" 4. Neither the name of the University nor the names of its contributors
16 .\"    may be used to endorse or promote products derived from this software
17 .\"    without specific prior written permission.
18 .\"
19 .\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND
20 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 .\" ARE DISCLAIMED.  IN NO EVENT SHALL Bill Paul OR CONTRIBUTORS BE LIABLE
23 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
25 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" SUCH DAMAGE.
30 .\"
31 .\" $FreeBSD: src/libexec/revnetgroup/revnetgroup.8,v 1.7.2.4 2002/08/15 18:53:16 schweikh Exp $
32 .\" $DragonFly: src/libexec/revnetgroup/revnetgroup.8,v 1.3 2007/04/07 19:29:52 swildner Exp $
33 .\"
34 .Dd October 24, 1995
35 .Dt REVNETGROUP 8
36 .Os
37 .Sh NAME
38 .Nm revnetgroup
39 .Nd "generate reverse netgroup data"
40 .Sh SYNOPSIS
41 .Nm
42 .Fl u
43 .Op Fl f Ar netgroup_file
44 .Nm
45 .Fl h
46 .Op Fl f Ar netgroup_file
47 .Sh DESCRIPTION
48 .Nm Revnetgroup
49 processes the contents of a file in
50 .Xr netgroup 5
51 format into what is called
52 .Dq reverse netgroup
53 form. That is, where the original file shows
54 netgroup memberships in terms of which members reside in a particular
55 group, the reverse netgroup format specifies what groups are associated
56 with a particular member. This information is used to generate the
57 .Pa netgroup.byuser
58 and
59 .Pa netgroup.byhosts
60 .Tn NIS
61 maps. These reverse netgroup maps are used to help speed up
62 netgroup lookups, particularly for the
63 .Fn innetgr
64 library function.
65 .Pp
66 For example, the standard
67 .Pa /etc/netgroup
68 file may list a netgroup and a list of its members. Here, the
69 netgroup is considered the
70 .Em key
71 and the member names are the
72 .Em data .
73 By contrast, the reverse
74 .Pa netgroup.byusers
75 database lists each unique
76 member as the key and the netgroups to which the members belong become
77 the data. Separate databases are created to hold information pertaining
78 to users and hosts; this allows netgroup username lookups
79 and netgroup hostname lookups to be performed using independent keyspaces.
80 .Pp
81 By constructing these reverse netgroup databases (and the corresponding
82 .Tn NIS
83 maps) in advance, the
84 .Xr getnetgrent 3
85 library functions are spared from having to work out the dependencies
86 themselves on the fly. This is important on networks with large numbers
87 of users and hosts, since it can take a considerable amount of time
88 to process very large netgroup databases.
89 .Pp
90 The
91 .Nm
92 command prints its results on the standard output. It is usually called
93 only by
94 .Pa /var/yp/Makefile
95 when rebuilding the
96 .Tn NIS
97 netgroup maps.
98 .Sh OPTIONS
99 The
100 .Nm
101 command supports the following options:
102 .Bl -tag -width indent
103 .It Fl u
104 Generate
105 .Pa netgroup.byuser
106 output; only username information in the
107 original netgroup file is processed.
108 .It Fl h
109 Generate
110 .Pa netgroup.byhost
111 output; only hostname information in the
112 original netgroup file is processed. (Note at least one of the
113 .Fl u
114 or
115 .Fl h
116 flags must be specified.)
117 .It Op Fl f Ar netgroup_file
118 The
119 .Nm
120 command uses
121 .Pa /etc/netgroup
122 as its default input file. The
123 .Fl f
124 flag allows the user to specify an alternate input file. Specifying ``-''
125 as the input file causes
126 .Nm
127 to read from the standard input.
128 .El
129 .Sh FILES
130 .Bl -tag -width /var/yp/Makefile -compact
131 .It Pa /var/yp/Makefile
132 the Makefile that calls
133 .Nm yp_mkdb
134 and
135 .Nm
136 to build the
137 .Tn NIS
138 databases
139 .It Pa /etc/netgroup
140 the default netgroup database file. This file is most often found
141 only on the
142 .Tn NIS
143 master server
144 .El
145 .Sh SEE ALSO
146 .Xr getnetgrent 3 ,
147 .Xr netgroup 5 ,
148 .Xr yp 8 ,
149 .Xr yp_mkdb 8
150 .Sh AUTHORS
151 .An Bill Paul Aq wpaul@ctr.columbia.edu