ОБЗОР
#include <sys/types.h>#include <unistd.h>
int setgid(gid_t gid);
ОПИСАНИЕ
Вызов setgid() устанавливает идентификатор эффективной группы вызвавшего процесса. Если вызывающий не обычный пользователь (имеет мандат CAP_SETGID), то также устанавливаются действительный и сохраненный идентификаторы группы.В Linux setgid() реализован так же, как в версии POSIX где есть возможность _POSIX_SAVED_IDS. Это позволяет set-group-ID-программам (не являющимся программами суперпользователя) сбросить привилегии группы, проделать непривилегированную работу и безопасно вернуть исходный эффективный идентификатор группы.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.ОШИБКИ
- EINVAL
- Идентификатор группы, заданный в gid, некорректен в этом пользовательском пространстве имён.
- EPERM
- У вызвавшего процесса нет прав (не имеет мандата CAP_SETGID) и gid не совпадает с эффективным идентификатором группы или сохраненным идентификатором группы.