.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2001 Andries Brouwer (aeb@cwi.nl) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" [should really be seteuid.3] .\" Modified, 27 May 2004, Michael Kerrisk .\" Added notes on capability requirements .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH seteuid 2 "30 марта 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ seteuid, setegid \- устанавливает эффективный идентификатор пользователя или группы .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBint seteuid(uid_t \fP\fIeuid\fP\fB);\fP \fBint setegid(gid_t \fP\fIegid\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP \fBseteuid\fP(), \fBsetegid\fP(): .nf _POSIX_C_SOURCE >= 200112L || /* glibc <= 2.19: */ _BSD_SOURCE .fi .SH ОПИСАНИЕ Вызов \fBseteuid\fP() устанавливает эффективный идентификатор пользователя вызывающего процесса. Непривилегированные процессы могут менять эффективный идентификатор пользователя только на действительный, эффективный или сохранённый идентификатор пользователя. .PP .\" When .\" .I euid .\" equals \-1, nothing is changed. .\" (This is an artifact of the implementation in glibc of seteuid() .\" using setresuid(2).) Тоже самое справедливо при работе \fBsetegid\fP() с «групповым» идентификатором, а не «пользовательским». .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" On success, zero is returned. On error, \-1 is returned, and \fIerrno\fP is set to indicate the error. .PP \fIЗамечание\fP: есть случаи, когда \fBseteuid\fP() может завершиться с ошибкой даже когда UID вызывающего равен 0; это серьёзная ошибка безопасности — не проверять возвращаемое значение \fBseteuid\fP(). .SH ОШИБКИ .TP \fBEINVAL\fP Целевой идентификатор пользователя или группы некорректен в этом пользовательском пространстве имён. .TP \fBEPERM\fP Для \fBseteuid\fP(): вызывающий процесс не имеет прав (не имеет мандата \fBCAP_SETUID\fP в своём пространстве имён пользователя) и \fIeuid\fP не совпадает с текущим действительным, эффективным или сохранённым идентификатором пользователя. .IP Для \fBsetegid\fP(): вызывающий процесс не имеет прав (не имеет мандата \fBCAP_SETGID\fP в своём пространстве имён пользователя) и \fIegid\fP не совпадает с текущим действительным, эффективным или сохранённым идентификатором группы. .SH ВЕРСИИ Установка эффективного идентификатора пользователя (группы) в сохранённый идентификатор пользователя (группы) возможна с версии Linux 1.1.37 (1.1.38). В других системах надо проверять \fB_POSIX_SAVED_IDS\fP. .PP В glibc 2.0 вызов \fBseteuid(\fP\fIeuid\fP\fB)\fPэквивалентен \fBsetreuid(\-1,\fP\fI euid\fP\fB)\fP, и поэтому может изменить сохранённый идентификатор пользователя. В glibc 2.1 и новее он эквивалентен \fBsetresuid(\-1,\fP\fI euid\fP\fB, \-1)\fP и поэтому не изменяет сохранённый идентификатор пользователя. Аналогичные замечания относятся и к \fBsetegid\fP(), с той разницей, что изменение в реализации из \fBsetregid(\-1,\fP\fI egid\fP\fB)\fP в \fBsetresgid(\-1,\fP\fI egid\fP\fB, \-1)\fP произошло в glibc 2.2 или 2.3 (зависит от аппаратной архитектуры). .PP Согласно POSIX.1, \fBseteuid\fP() (\fBsetegid\fP()) необходимо запрещать \fIeuid\fP (\fIegid\fP) равный текущему эффективному идентификатору пользователя (группе), и некоторые реализации не позволяют этого. .SS "Отличия между библиотекой C и ядром" В Linux, \fBseteuid\fP() и \fBsetegid\fP() реализованы в виде библиотечных функций, которые вызывают \fBsetreuid\fP(2) и \fBsetregid\fP(2), соответственно. .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001, 4.3BSD. .SH "СМ. ТАКЖЕ" \fBgeteuid\fP(2), \fBsetresuid\fP(2), \fBsetreuid\fP(2), \fBsetuid\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 .