setreuid(2) definir el identificador de usuario o de grupo real y/o efectivo

Other Alias

setregid

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.)