Scroll to navigation

SETREUID(2) Руководство программиста Linux SETREUID(2)

НАЗВАНИЕ

setreuid, seteuid - установить действительный и/или фактический идентификатор пользователя

КРАТКАЯ СВОДКА

#include <sys/types.h>
 
#include <unistd.h>
 
int setreuid(uid_t ruid, uid_t euid);
 
int seteuid(uid_t euid);

ОПИСАНИЕ

setreuid устанавливает действительный и фактический идентификаторы владельца текущего процесса. Непривилегированные пользователи могут изменять действительный идентификатор владельца на фактический и наоборот.
 
В Linux версий раньше 1.1.37 парадигма сохраненных идентификаторов, при использовании с setreuid или seteuid, была некорректно реализована.
 
Начиная с 1.1.37, можно также устанавливать действительный идентификатор пользователя в сохраненный идентификатор пользователя.
 
Только суперпользователь может делать все другие изменения.
 
Передавая -1 в качестве действительного или фактического идентификатора пользователя оставляет соответствующий идентификатор без изменений.
 
В настоящий момент вызов seteuid(euid) функционально эквивалентен вызову setreuid(-1, euid).
 
Если действительный идентификатор пользователя изменяется или же фактический идентификатор пользователя устанавливается в значение, не равное предыдущему действительному идентификатору пользователя, то сохраненный идентификатор устанавливается в новый фактический идентификатор.

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

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

ОШИБКИ

EPERM
Текущий процесс не имеет прав суперпользователя и пытается выполнить что-то помимо (i) обмена фактического идентификатора на действительный, (ii) установки одного в значение другого, или же (iii) установки фактического идентификатора пользователя в значение сохраненного идентификатора.

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

BSD 4.3 (системный вызов setreuid впервые появился в 4.2BSD.)

СМОТРИ ТАКЖЕ

getuid(2), setuid(2)

ПЕРЕВОД

Перевод Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 2000
 
http://alexm.here.ru/manpages-ru/
2nd August 1994 Linux 1.1.38