mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-09-11 14:54:54 +00:00
213 lines
5.5 KiB
Groff
213 lines
5.5 KiB
Groff
.\" Copyright (c) 1989, 1991, 1993
|
|
.\" 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. All advertising materials mentioning features or use of this software
|
|
.\" must display the following acknowledgement:
|
|
.\" This product includes software developed by the University of
|
|
.\" California, Berkeley and its contributors.
|
|
.\" 4. 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: @(#)getgrent.3 8.2 (Berkeley) 4/19/94
|
|
.\" $Id: getgrent.3,v 1.1 1997/02/27 07:32:22 gdr Exp $
|
|
.\"
|
|
.TH GETGRENT 3 "27 January 1997" GNO "Library Routines"
|
|
.SH NAME
|
|
.BR getgrent ,
|
|
.BR getgrnam ,
|
|
.BR getgrgid ,
|
|
.BR setgroupent ,
|
|
.BR setgrent ,
|
|
.BR endgrent
|
|
\- group database operations
|
|
.SH SYNOPSIS
|
|
#include <sys/types.h>
|
|
.br
|
|
#include <grp.h>
|
|
.sp 1
|
|
struct group *
|
|
\fBgetgrent\fR (void);
|
|
.br
|
|
struct group *
|
|
\fBgetgrnam\fR (const char *\fIname\fR);
|
|
.br
|
|
struct group *
|
|
\fBgetgrgid\fR (gid_t \fIgid\fR);
|
|
.br
|
|
int
|
|
\fBsetgroupent\fR (int \fIstayopen\fR);
|
|
.br
|
|
int
|
|
\fBsetgrent\fR (void);
|
|
.br
|
|
void
|
|
\fBendgrent\fR (void);
|
|
.SH DESCRIPTION
|
|
These functions operate on the group database file
|
|
.BR /etc/group
|
|
which is described
|
|
in
|
|
.BR group (5).
|
|
Each line of the database is defined by the structure
|
|
.BR group
|
|
found in the include
|
|
file <grp.h>:
|
|
.nf
|
|
|
|
struct group {
|
|
char *gr_name; /* group name */
|
|
char *gr_passwd; /* group password */
|
|
gid_t gr_gid; /* group id */
|
|
char **gr_mem; /* group members */
|
|
};
|
|
|
|
.fi
|
|
Applications should never read
|
|
.BR /etc/group
|
|
directly, as the implementation of the group database is subject
|
|
to change.
|
|
.LP
|
|
The functions
|
|
.BR getgrnam
|
|
and
|
|
.BR getgrgid
|
|
search the group database for the given group name pointed to by
|
|
.BR name
|
|
or the group id
|
|
.BR gid ,
|
|
respectively, returning the first one encountered. Identical group
|
|
names or group gids may result in undefined behavior.
|
|
.LP
|
|
The
|
|
.BR getgrent
|
|
function
|
|
sequentially reads the group database and is intended for programs
|
|
that wish to step through the complete list of groups.
|
|
.LP
|
|
All three routines will open the group file for reading, if necessary.
|
|
.LP
|
|
The
|
|
.BR setgroupent
|
|
function
|
|
opens the file, or rewinds it if it is already open. If
|
|
.I stayopen
|
|
is non-zero, file descriptors are left open, significantly speeding
|
|
functions subsequent calls. This functionality is unnecessary for
|
|
.BR getgrent
|
|
as it doesn't close its file descriptors by default. It should also
|
|
be noted that it is dangerous for long-running programs to use this
|
|
functionality as the group file may be updated.
|
|
.LP
|
|
The
|
|
.BR setgrent
|
|
function
|
|
is identical to
|
|
.BR setgroupent
|
|
with an argument of zero.
|
|
.LP
|
|
The
|
|
.BR endgrent
|
|
function
|
|
closes any open files.
|
|
.SH YP/NIS INTERACTION
|
|
When the
|
|
.BR yp (4)
|
|
group database is enabled, the
|
|
.BR getgrnam
|
|
and
|
|
.BR getgrgid
|
|
functions use the YP maps
|
|
.BR group.byname
|
|
and
|
|
.BR group.bygid ,
|
|
respectively, if the requested group is not found in the local
|
|
.BR /etc/group
|
|
file. The
|
|
.BR getgrent
|
|
function will step through the YP map
|
|
.BR group.byname
|
|
if the entire map is enabled as described in
|
|
.BR group (5).
|
|
.SH RETURN VALUES
|
|
The functions
|
|
.BR getgrent ,
|
|
.BR getgrnam ,
|
|
and
|
|
.BR getgrgid ,
|
|
return a pointer to the group entry if successful; if end-of-file
|
|
is reached or an error occurs a null pointer is returned.
|
|
The functions
|
|
.BR setgroupent
|
|
and
|
|
.BR setgrent
|
|
return the value 1 if successful, otherwise the value
|
|
0 is returned.
|
|
The functions
|
|
.BR endgrent
|
|
and
|
|
.BR setgrfile
|
|
have no return value.
|
|
.SH FILES
|
|
.IP \fB/etc/group\fR
|
|
group database file
|
|
.SH SEE ALSO
|
|
.BR getpwent 3 ,
|
|
.BR group 5 ,
|
|
.BR yp 4
|
|
.SH HISTORY
|
|
The functions
|
|
.BR endgrent ,
|
|
.BR getgrent ,
|
|
.BR getgrnam ,
|
|
.BR getgrgid ,
|
|
and
|
|
.BR setgrent
|
|
appeared in v7.
|
|
The functions
|
|
.BR setgrfile
|
|
and
|
|
.BR setgroupent
|
|
appeared in 4.3BSD (Reno).
|
|
.SH COMPATIBILITY
|
|
The historic function
|
|
.BR setgrfile ,
|
|
which allowed the specification of alternate password databases, has
|
|
been deprecated and is no longer available.
|
|
.SH BUGS
|
|
The functions
|
|
.BR getgrent ,
|
|
.BR getgrnam ,
|
|
.BR getgrgid ,
|
|
.BR setgroupent
|
|
and
|
|
.BR setgrent
|
|
leave their results in an internal static object and return
|
|
a pointer to that object. Subsequent calls to
|
|
the same function
|
|
will modify the same object.
|
|
.LP
|
|
GNO does not currently make use of the
|
|
.BR yp (4)
|
|
database.
|