.\" -*- coding: UTF-8 -*- .\" Copyright (C), 1994, Graeme W. Wilford. (Wilf.) .\" and Copyright (C) 2010, 2015, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Fri Jul 29th 12:56:44 BST 1994 Wilf. .\" Modified 1997-01-31 by Eric S. Raymond .\" Modified 2002-03-09 by aeb .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setgid 2 "30 октября 2022 г." "Linux man\-pages 6.03" .SH ИМЯ setgid \- устанавливает идентификатор группы процесса .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint setgid(gid_t \fP\fIgid\fP\fB);\fP .fi .SH ОПИСАНИЕ Вызов \fBsetgid\fP() устанавливает эффективный идентификатор группы вызвавшего процесса. Если вызывающий процесс имеет права (точнее, мандат \fBCAP_SETGID\fP в своём пространстве имён пользователя), то также устанавливаются действительный и сохраненный идентификаторы группы. .PP В Linux \fBsetgid\fP() реализован так же, как в версии POSIX где есть возможность \fB_POSIX_SAVED_IDS\fP. Это позволяет set\-group\-ID\-программам (не являющимся программами суперпользователя) сбросить привилегии группы, проделать непривилегированную работу и безопасно вернуть исходный эффективный идентификатор группы. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, zero is returned. On error, \-1 is returned, and \fIerrno\fP is set to indicate the error. .SH ОШИБКИ .TP \fBEINVAL\fP Идентификатор группы, заданный в \fIgid\fP, некорректен в этом пользовательском пространстве имён. .TP \fBEPERM\fP У вызвавшего процесса нет прав (не имеет мандата \fBCAP_SETGID\fP в его пользовательском пространстве имён) и \fIgid\fP не совпадает с эффективным идентификатором группы или сохраненным set\-group\-ID идентификатором группы вызывающего процесса. .SH СТАНДАРТЫ POSIX.1\-2001, POSIX.1\-2008, SVr4. .SH ЗАМЕЧАНИЯ .\" Первоначальная версия системного вызова \fBsetgid\fP() в Linux поддерживала только 16\-битные идентификаторы групп. Позднее в Linux 2.4 был добавлен вызов \fBsetgid32\fP(), поддерживающий 32\-битные идентификаторы. В glibc обёрточная функция \fBgsetgid\fP() работает одинаково вне зависимости от версий ядра. .SS "Отличия между библиотекой C и ядром" На уровне ядра ID пользователя и группы являются атрибутами нити. Однако в POSIX требуется, чтобы все нити в процессе имели одинаковые права. В реализации нитей NPTL требования POSIX реализованы через обёрточные функции для различных системных вызовов, которые изменяют UID и GID процесса. В этих функциях (включая и для \fBsetgid\fP()) используется алгоритмы на основе сигналов, которые следят за тем, что когда у одной нити изменяются права, эти изменения выполняются и для остальных нитей процесса. Подробное описание смотрите в \fBnptl\fP(7). .SH "СМ. ТАКЖЕ" \fBgetgid\fP(2), \fBsetegid\fP(2), \fBsetregid\fP(2), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBuser_namespaces\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .