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/