Provided by: manpages-ru_0.98-4_all bug

НАЗВАНИЕ

       setgid - установить группу процесса

КРАТКАЯ СВОДКА

       #include <sys/types.h>
       #include <unistd.h>

       int setgid(gid_t gid)

ОПИСАНИЕ

       setgid  устанавливает  фактический  идентификатор  группы текущего процесса.  Если функция
       вызвана  суперпользователем,  то  устанавливаются  также  действительный   и   сохраненный
       идентификаторы группы.

       Под Linux setgid реализован так же, как в стандарте POSIX с возможностью _POSIX_SAVED_IDS.
       Это  позволяет  setgid-программам  (не  от  имени  суперпользователя)  сбросить  все  свои
       групповые  привилегии, сделать какую-нибудь непривилегированную работу и безопасно вернуть
       исходный фактический идентификатор группы.

       Если пользователь является root'ом или программа установлена как  setgid  root,  то  нужна
       особая осторожность.  Функция setgid проверяет фактический идентификатор группы вызвавшего
       процесса  и,  если  это  суперпользователь,  то   все   идентификаторы   группы   процесса
       устанавливаются в значение gid.  После этого программе никак не вернуть обратно привилегии
       суперпользователя.

       Таким   образом,   setgid-root   программа,   желающая   временно   сбросить    привилегии
       суперпользователя,   попасть   в   не-root   группу,   а   потом  восстановить  привилегии
       суперпользователя, не может использовать setgid.  Желаемого результата  можно  добиться  с
       помощью системного вызова setegid, которого нет в стандарте POSIX, но есть в BSD.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       В  случае  успеха  возвращается ноль.  При ошибке возвращается -1, а errno устанавливается
       должным образом.

ОШИБКИ

       EPERM  Пользователь не является суперпользователем, а gid на совпадает с  фактическим  или
              сохраненным идентификаторами текущего процесса.

СООТВЕТСТВИЕ СТАНДАРТАМ

       SVr4, SVID.

СМОТРИ ТАКЖЕ

       getgid(2), setregid(2), setegid(2)

ПЕРЕВОД

       Перевод Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 2000

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