setegid()

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

Прототип:

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

Аргументы:

gid
The effective group ID that you want to use for the process.

Библиотека:

libc

Описание:

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.


Note: 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.

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

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

Коды ошибок:

EINVAL
The value of gid is out of range.
EPERM
The process isn't the superuser, and gid doesn't match the real group ID or the saved set-group ID.

Примеры:

/*
* 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 системной библиотеки