Установить процессу реальный и эффективный идентификаторы группы
#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 системной библиотеки