setegid()

Установить эффективный идентификатор группы

Прототип:

#include <unistd.h>
int setegid( gid_t gid );

Аргументы:

gid
Эффективный идентификатор группы, который требуется использовать для процесса.

Библиотека:

libc

Описание:

Функция setegid() позволяет вызывающему процессу установить эффективный идентификатор группы по следующим принципам:

Реальный и сохраненный идентификатор группы не изменяются.


Note: Если процесс устанавливает свой эффективный ID группы в реальный ID, он всё равно сможет вернуть свой эффективный ID группы в сохраненный.

Процесс, созданный суперпользователем – это процесс с эффективным идентификатором пользователя 0 или эффективным идентификатором пользователя root.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EINVAL
Значение gid находится вне диапазона.
EPERM
Процесс не создан суперпользователем и gid не совпадает с реальным или сохраненным идентификатором группы.

Примеры:

/*
* 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);
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

errno, getegid(), seteuid(), setgid(), setuid()




Предыдущий раздел: Описание API системной библиотеки