The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group

 NAME

setregid - set real and effective group IDs

 SYNOPSIS



#include <unistd.h>

int setregid(gid_t rgid, gid_t egid);

 DESCRIPTION

The setregid() function is used to set the real and effective group IDs of the calling process. If rgid is -1, the real group ID is not changed; if egid is -1, the effective group ID is not changed. The real and effective group IDs may be set to different values in the same call.

Only a process with appropriate privileges can set the real group ID and the effective group ID to any valid value.

A non-privileged process can set either the real group ID to the saved set-group-ID from exec(), or the effective group ID to the saved set-group-ID or the real group ID.

Any supplementary group IDs of the calling process remain unchanged.

 RETURN VALUE

Upon successful completion, 0 is returned. Otherwise, -1 is returned and errno is set to indicate the error and neither of the group IDs will be changed.

 ERRORS

The setregid() function will fail if:
[EINVAL]
The value of the rgid or egid argument is invalid or out-of-range.
[EPERM]
The process does not have appropriate privileges and a change other than changing the real group ID to the saved set-group-ID, or changing the effective group ID to the real group ID or the saved group ID, was requested.

 EXAMPLES

None.

 APPLICATION USAGE

If a set-group-ID process sets its effective group ID to its real group ID, it can still set its effective group ID back to the saved set-group-ID.

 FUTURE DIRECTIONS

None.

 SEE ALSO

exec, getuid(), setreuid(), setuid(), <unistd.h>.

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]