SETGROUPS(2)							  SETGROUPS(2)
      setgroups - set group access list
      #include <sys/param.h>
   POSIX:
     int setgroups(int ngroups,	gid_t *gidset);
   BSD:
     int setgroups(int ngroups,	int *gidset);
     To	use the	BSD version of setgroups, one must either
     1)	explicitly invoke it as	BSDsetgroups or
     2)	link with the libbsd.a library:
	  cc -o	prog prog.c -lbsd
     setgroups initializes the group access list of the	current	user process
     according to the array gidset.  The parameter ngroups indicates the
     number of entries in the array.  The sysconf(_SC_NGROUPS_MAX) system call
     may be used to determine at runtime the maximum allowable value for
     ngroups in	the particular kernel configuration (it	is an lbootable	value
     (ngroups_max) which is declared in	/var/sysgen/master.d/kernel).  If
     using the BSD version, ngroups may	never be greater than NGROUPS (as
     defined in	<sys/param.h>).
     Setting ngroups_max to zero and rebooting effectively disables multiplegroups
 system-wide.  In most cases, however, it will be set to a value
     between NGROUPS_UMIN and NGROUPS_UMAX (also defined in <sys/param.h>).
     Only the super-user may set new groups or alter the value of ngroups_max.
     A successful call returns the number of groups in the group set.  A value
     of	-1 indicates that an error occurred, and the error code	is stored in
     the global	variable errno.
     The setgroups call	will fail if:
     [EPERM]	    The	caller is not the super-user.
     [EFAULT]	    The	address	specified for gidset is	outside	the process
		    address space.
     [EINVAL]	    The	ngroups	parameter is greater than NGROUPS or the
		    kernel maximum, as specified above.
									Page 1
SETGROUPS(2)							  SETGROUPS(2)
     multgrps(1), getgroups(2),	initgroups(3), sysconf(2)
     The POSIX and 4.3BSD versions differ in the types of their	gidset
     parameter.
									PPPPaaaaggggeeee 2222 [ Back ]
 |