NOMBRE¶
setresuid, setresgid - establecen el UID o GID efectivo, real y salvado
SINOPSIS¶
#include <unistd.h>
int setresuid(uid_t ruid, uid_t euid, uid_t
suid);
int setresgid(gid_t rgid, gid_t egid, gid_t
sgid);
DESCRIPCIÓN¶
setresuid establece el UID real, el UID efectivo y el SETUID salvado del
proceso actual.
Los procesos de usuarios no privilegiados (esto es, procesos con cada uno de los
UIDs real, efectivo y salvado distintos de cero) pueden cambiar el UID real,
efectivo y salvado, cada uno a uno de: el UID actual, el UID efectivo actual o
el UID salvado actual.
El súper-usuario puede establecer los UIDs real, efectivo y salvado a
valores arbitrarios.
Si uno de los parámetros es igual a -1, el valor correspondiente no se
cambia.
De forma completamente análoga,
setresgid establece el GID real,
efectivo y salvado del proceso en curso, con las mismas restricciones para
procesos con cada uno de los UIDs real, efectivo y salvado distintos de cero.
VALOR DEVUELTO¶
En caso de éxito, se devuelve cero. En caso de error, se devuelve -1 y se
pone en
errno un valor adecuado.
ERRORES¶
- EPERM
- El proceso en curso no era privilegiado e intentó
cambiar los IDs de una forma no permitida.
Esta llamada no es estándar.
HISTORIA¶
Esta llamada al sistema fue introducida por primera vez en HP-UX. En Linux
está disponible desde la versión 2.1.44. Aquellos días
también se podía encontrar en FreeBSD (para emulación de los
binarios de Linux).
OBSERVACIONES¶
Bajo HP-UX y FreeBSD el prototipo se encuentra en
<unistd.h>. Bajo
Linux no hay hasta ahora fichero de cabecera que incluya el prototipo -
ésto es un fallo de glibc. Los programas que usen esta llamada al sistema
deben añadir el prototipo ellos mismos.
VÉASE TAMBIÉN¶
getuid(2),
setuid(2),
getreuid(2),
setreuid(2),
getresuid(2)