The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

setgid (2)
  • setgid (2) ( Solaris man: Системные вызовы )
  • setgid (2) ( FreeBSD man: Системные вызовы )
  • >> setgid (2) ( Русские man: Системные вызовы )
  • setgid (2) ( Linux man: Системные вызовы )
  • setgid (3) ( POSIX man: Библиотечные вызовы )
  •  

    НАЗВАНИЕ

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

    СИНТАКСИС

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

    int setgid(gid_t gid);  

    ОПИСАНИЕ

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

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

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

    НАЙДЕННЫЕ ОШИБКИ

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

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

    SVr4, SVID.  

    СМ. ТАКЖЕ

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


     

    Index

    НАЗВАНИЕ
    СИНТАКСИС
    ОПИСАНИЕ
    ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
    НАЙДЕННЫЕ ОШИБКИ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    СМ. ТАКЖЕ


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру