Установить эффективный идентификатор пользователя
#include <unistd.h>int seteuid( uid_t uid );
libc
Функция seteuid() позволяет вызывающему процессу установить эффективный идентификатор пользователя по следующим принципам:
Реальный и сохраненный идентификатор пользователя не изменяются.
Если процесс устанавливает свой эффективный ID пользователя в реальный ID, он всё равно сможет вернуть свой эффективный ID пользователя в сохраненный. |
Процесс, созданный суперпользователем – это процесс с эффективным идентификатором пользователя 0
или эффективным идентификатором пользователя 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);}
POSIX 1003.1
errno, geteuid(), setegid(), setuid(), setgid()
Предыдущий раздел: Описание API системной библиотеки