Set the effective group ID for a process
#include <unistd.h> int setegid( gid_t gid );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The setegid() function lets the calling process set the effective group ID based on the following:
The real and saved group ID aren't changed.
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. |
The “superuser” is defined as any process with an effective user ID of 0, or an effective user ID of root.
Zero for success, or -1 if an error occurs (errno is set).
/* * This process sets its effective group ID to 2 */ #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main( void ) { gid_t oegid; oegid = getegid(); if( setegid( 2 ) == -1 ) { perror( "setegid" ); return EXIT_FAILURE; } printf( "Was effective group %d, is 2\n", oegid ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
errno, getegid(), seteuid(), setgid(), setuid()