Manpages

НАЗВАНИЕ

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 [AT] hsys.ru> 2000

http://alexm.here.ru/manpages-ru/