MAN setgid 2

Материал из Gentoo Linux Wiki

Перейти к: навигация, поиск


Вернуться в раздел мануалов


Это - статья, добавленная автоматически, при помощие специальной программы-робота. Пожалуйста убедитесь что статья добавлена корректно, исправьте её если это потребуется и уберите пометку {{Bot added}}].

Содержание

[править] Название

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/

[править] Комментарии к man файлу

-*- nroff -*-
Copyright (C), 1994, Graeme W. Wilford. (Wilf.)

Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one

Since the Linux kernel and libraries are constantly changing, this
manual page may be incorrect or out-of-date. The author(s) assume no
responsibility for errors or omissions, or for damages resulting from
the use of the information contained herein. The author(s) may not
have taken the same level of care in the production of this manual,
which is licensed free of charge, as they might when working
professionally.

Formatted or processed versions of this manual, if unaccompanied by
the source, must acknowledge the copyright and authors of this work.

Fri Jul 29th 12:56:44 BST 1994 Wilf. <G.Wilford@ee.surrey.ac.uk>
Modified Fri Jan 31 17:06:56 1997 by Eric S. Raymond <esr@thyrsus.com>

Источник — «http://ru.gentoo-wiki.com/MAN_setgid_2»
Личные инструменты