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