Scroll to navigation

SETRESUID(2) Manual del Programador de Linux SETRESUID(2)

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.

CONFORME A

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)
15 noviembre 2001 Linux 2.1.44