Set the effective user ID
#include <unistd.h> int seteuid( uid_t uid );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The seteuid() function lets the calling process set the effective user ID, based on the following:
The real and saved user IDs aren't changed.
If a set-UID process sets its effective user ID to its real user ID, it can still set its effective user ID back to the saved set-UID. |
The “superuser” is defined as any process with an effective user ID of 0, or an effective user ID of root.
/* * This process sets its effective userid to 0 (root). */ #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> int main( void ) { uid_t oeuid; oeuid = geteuid(); if( seteuid( 0 ) == -1 ) { perror( "seteuid" ); return EXIT_FAILURE; } printf( "effective userid now 0, was %d\n", oeuid ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |
errno, geteuid(), setegid(), setuid(), setgid()