Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

sia_get_groups(3) [osf1 man page]

sia_get_groups(3)					     Library Functions Manual						 sia_get_groups(3)

NAME
sia_get_groups - retrieve user's group information for SIA (Security Integration Architecture) LIBRARY
Standard C library (libc.so and libc.a) SYNOPSIS
#include <sia.h> #include <siad.h> int sia_get_groups( const char *username gid_t basegid gid_t *buffer int *ngroups) PARAMETERS
The name of the user whose group information should be written to the buffer array. This parameter is read only. If not ((gid_t)-1), this GID will appear in the buffer array in addition to any other groups found for this user. This is normally used to pass the user's GID from the password information, since the GID is not necessarily listed in the group information obtained with getgrent(). The array into which this routine writes the accumulated GIDs for the specified user. On input, this parameter points to an integer that represents the maximum number of entries allowed for the buffer array. When this routine returns, it updates this value to be the number of entries which were found. On failure, the value is indeterminate. DESCRIPTION
The sia_get_groups() routine is called to obtain a user's group array. EXAMPLES
A typical call to obtain a user's group array follows: #include <sia.h> int ngroups; gid_t groups[NGROUPS]; struct passwd *pw; extern char *username; pw = getpwnam(username); if (pw == NULL) return 0; ngroups = NGROUPS; if (sia_get_groups(username, pw->pw_gid, groups, &ngroups) != SIASUCCESS) return 0; /* process group array here */ RETURN VALUES
This routine returns SIA_SUCCESS if all the incoming arguments are correct (non-null pointers, non-null username, and *ngroups must be pos- itive), and if none of the configured mechanism functions for group processing returned a fatal error. Finding more than *ngroups GIDs for the user is one such fatal error, and is the only one defined for all mechanisms. If a fatal error is encountered in one of the configured mechanisms, this routine returns SIAFAIL|SIASTOP. If there are parameter errors, or if a getgrent_r call fails, this routine returns SIAFAIL. ERRORS
While errno will usually be propagated from whatever other calls failed, this routine will return with errno explicitly set for the follow- ing conditions: One of the pointer arguments was NULL. *username was 0, or *ngroups was not positive. Thread context failure while scan- ning for groups. FILES
/etc/sia/matrix.conf RELATED INFORMATION
getgrent(3), matrix.conf(4), initgroups(3), siad_get_groups(3) _sia_isagroup(3) Security delim off sia_get_groups(3)

Check Out this Related Man Page

GETGROUPLIST(3) 					   BSD Library Functions Manual 					   GETGROUPLIST(3)

NAME
getgrouplist, getgroupmembership, -- calculate group access list LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <unistd.h> int getgrouplist(const char *name, gid_t basegid, gid_t *groups, int *ngroups); int getgroupmembership(const char *name, gid_t basegid, gid_t *groups, int maxgrp, int *ngroups); DESCRIPTION
The getgrouplist() and getgroupmembership() functions read through the group database and calculate the group access list for the user speci- fied in name. The basegid is automatically included in the groups list. Typically this value is given as the group number from the password database. The resulting group list is returned in the integer array pointed to by groups. For getgrouplist(), the caller specifies the size of the groups array in the integer pointed to by ngroups. For getgroupmembership(), the caller specifies the size of the groups array in maxgrp. The actual number of groups found is returned in ngroups. Duplicate group ids will be suppressed from the result. RETURN VALUES
The getgrouplist() and getgroupmembership() functions return 0 if successful, and return -1 if the size of the group list is too small to hold all the user's groups. In the latter case, the groups array will be filled with as many groups as will fit and ngroups will contain the total number of groups found. FILES
/etc/group group membership list SEE ALSO
setgroups(2), initgroups(3), group(5) HISTORY
The getgrouplist() function first appeared in 4.4BSD. The getgroupmembership() function first appeared in NetBSD 3.0 to address an API defi- ciency in getgrouplist(). BUGS
The getgrouplist() function uses the routines based on getgrent(3). If the invoking program uses any of these routines, the group structure will be overwritten in the call to getgrouplist(). BSD
January 6, 2005 BSD
Man Page