SETREGID(2)

НАЗВАНИЕ
setregid, setegid - установить действительный и/или фактический идентификатор группы

КРАТКАЯ СВОДКА
#include <sys/types.h>
#include <unistd.h>

int setregid(gid_t rgid, gid_t egid);
int setegid(gid_t egid);

ОПИСАНИЕ
setregid устанавливает действительный и фактический идентификатор группы текущего процесса. Непривилегированные пользователи могут изменять действительный идентификатор на фактический и наоборот. В Linux до версии 1.1.38 парадигма сохраненных идентификаторов, которая использовалась вместе с setregid или setegid, была неверно реализована. Начиная с 1.1.38, можно устанавливать фактический идентификатор группы в сохраненный идентификатор группы. Все остальные изменения может делать только суперпользователь. Передавая -1 в качестве действительного или фактического идентификатора группы оставляет этот идентификатор без изменений. В настоящий момент (libc-4.x.x), вызов setegid(egid) функционально эквивалентен вызову setregid(-1, egid). Если действительный идентификатор группы изменяется или фактический идентификатор группы устанавливается в значение, не равное предыдущему действительному идентификатору, то сохраненный идентификатор группы будет установлен в новый фактический идентификатор группы.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха возвращается ноль. При ошибке возвращается -1, а errno устанавливается должным образом.

ERRORS

EPERM
    Текущий процесс не имеет прав суперпользователя и пытается выполнить что-то помимо (i) обмена фактического идентификатора на действительный, (ii) установки одного в значение другого, или же (iii) установки фактического идентификатора группы в значение сохраненного идентификатора группы.

СООТВЕТСТВИЕ СТАНДАРТАМ
BSD 4.3 (системный вызов setregid впервые появился в 4.2BSD).

СМОТРИ ТАКЖЕ
getgid(2), setgid(2)

ПЕРЕВОД
Перевод Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 2000 http://alexm.here.ru/manpages-ru/