Установить процессу реальный и эффективный идентификаторы группы
#include <unistd.h>int setregid( gid_t rgid,gid_t egid );
-1, если данный идентификатор изменять не требуется.-1, если данный идентификатор изменять не требуется.libc
Функция setregid() устанавливает реальный и эффективный идентификаторы группы (GID) для вызывающего процесса. Если значение rigid или egid равно -1, то соответствующий реальный или эффективный GID у процесса не будет изменен.
В случае, если у вызывающего процесса эффективный идентификатор пользователя (UID) соответствует суперпользователю, то возможно установить реальный и эффективный GID процесса в любое допустимое значение.
В случае, если у вызывающего процесса эффективный UID не соответствует суперпользователю, то возможно либо установить реальный GID процесса в значение равное SGID (set-group ID), либо эффективный GID в значение равное SGID или равное реальному GID данного процесса.
Если процесс, обладающий SGID, устанавливает свой эффективный GID в значение реального GID, то возможно изменить обратно свой эффективный GID в значение равное SGID. |
Процесс считается “суперпользователем”, если его эффективный UID равен 0.
В любом случае, если у процесса изменяется реальный GID (т.е. параметр rgid не равен -1), или изменяется эффективный GID на значение не равное реальному GID, то его SGID устанавливается равным новому эффективному GID.
SGID. POSIX 1003.1 X/Open Systems Interfaces Extension
execve(), getgid(), setreuid(), setuid()
Предыдущий раздел: Описание API системной библиотеки