This section describes the functions for altering the group IDs (real and effective) of a process. To use these facilities, you must include the header files `sys/types.h' and `unistd.h'.
If the process is not privileged, then newgid must either be equal
to the real group ID or the saved group ID. In this case, setgid
sets only the effective group ID and not the real group ID.
The return values and error conditions for setgid
are the same
as those for setuid
.
-1
, it
means not to change the real group ID; likewise if egid is
-1
, it means not to change the effective group ID.
The setregid
function is provided for compatibility with 4.3 BSD
Unix, which does not support saved IDs. You can use this function to
swap the effective and real group IDs of the process. (Privileged
processes are not limited to this usage.) If saved IDs are supported,
you should use that feature instead of using this function.
See section Enabling and Disabling Setuid Access.
The return values and error conditions for setregid
are the same
as those for setreuid
.
The GNU system also lets privileged processes change their supplementary
group IDs. To use setgroups
or initgroups
, your programs
should include the header file `grp.h'.
This function returns 0
if successful and -1
on error.
The following errno
error conditions are defined for this
function:
EPERM
initgroups
function effectively calls setgroups
to
set the process's supplementary group IDs to be the normal default for
the user name user. The group ID gid is also included.
Go to the first, previous, next, last section, table of contents.