SETREUID(2)

NOMBRE
setreuid, setregid - definir el identificador de usuario o de grupo real y/o efectivo

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

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

DESCRIPCIÓN
setreuid define el identificador de usuario real y efectivo del proceso actual. Los usuarios sin privilegios solamente pueden cambiar el identificador de usuario real por el identificador de usuario real o el identificador de usuario efectivo, y el identificador de usuario efectivo por el identificador de usuario real, el identificador de usuario efectivo o el identificador de usuario guardado.

Dando el valor -1 para el valor del identificador de usuario ya sea el real o el efectivo, fuerza al sistema a dejar dicho identificador sin cambios.

Si el identificador de usuario real es cambiado, o el identificador de usuario efectivo se pone a un valor distinto del identificador de usuario real previo, el identificador de usuario guardado será puesto al nuevo identificador de usuario efectivo.

De manera completamente análoga, setregid define el identificador de grupo real y efectivo del proceso actual, aplicándose todo lo comentado arriba con "grupo" en lugar de "usuario".

VALOR DEVUELTO
Si hay éxito, se devuelve cero. Si hay error, se devuelve -1, y errno se actualiza de la forma apropiada.

ERRORES

EPERM
    El proceso actual no es el superusuario y especifica un cambio que no es (1) intercambiar el identificador de usuario (grupo) efectivo con el real, o (2) poner el valor de uno al del otro, o (3) poner el identificador de usuario (grupo) efectivo al valor del identificador de usuario (grupo) guardado.

OBSERVACIONES
Establecer el identificador de usuario (grupo) efectivo al identificador de usuario guardado es posible desde la versión 1.1.37 de Linux (1.1.38).

CONFORME A
BSD 4.3 (las funciones setreuid y setregid aparecieron por primera vez en 4.2BSD.)

VÉASE TAMBIÉN
getuid(2), getgid(2), setuid(2), setgid(2), seteuid(2), setresuid(2)