Документация по LinuxLinuxDoc.Ru 🔍

setgid - устанавливает идентификатор группы процесса

НАЗВАНИЕ
setgid - устанавливает идентификатор группы процесса

СИНТАКСИС

#include
#include

int setgid(gid_t gid);

ОПИСАНИЕ

setgid устанавливает идентификатор эффективной группы
текущего процесса. Если функция вызвана
суперпользователем, то устанавливаются идентификаторы
действительной и сохраненной группы. В Linux setgid
реализован так же, как в стандарте POSIX, где есть
возможность _POSIX_SAVED_IDS. Это позволяет set-
gid-программам (не являющимся программами
суперпользователя) сбросить привилегии группы, проделать
непривилегированную работу и вернуть исходный
идентификатор эффективной группы в полной сохранности.
Если пользователь является суперпользователем или
установленная программа является setgid root, то
необходимо быть особенно осмотрительным. Функция setgid
проверяет идентификатор эффективной группы вызвавшего
процесса, и если это суперпользовательский процесс, то
устанавливаемое значение всех идентификаторов его группы
становится равным gid. После этого программе невозможно
вернуть привилегии суперпользователя. Таким образом,
программа setgid-root, собирающаяся временно сбросить
привилегии суперпользователя, попасть в не-root группу, а
потом восстановить привилегии суперпользователя, не может
использовать setgid. Желаемого результата можно добиться
с помощью системного вызова setegid, которого нет в
стандарте POSIX, но он есть в BSD.

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

КОДЫ ОШИБОК
EPERM Пользователь не является суперпользователем, а gid
на совпадает с идентификатором эффективной группы
или идентификатором сохраненной группы текущего
процесса.

СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, SVID.
Читать новости Linux в Telegram
Linux - setgid - устанавливает идентификатор группы процесса
Мы в соцсетях ✉