bionic (2) setgroups.2.gz

Provided by: manpages-es_1.55-10_all bug

NOMBRE

       getgroups, setgroups - obtiene/asigna la lista de IDs de grupo suplementarios

SINOPSIS

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

       int getgroups(int size, gid_t list[]);

       #include <grp.h>

       int setgroups(size_t size, const gid_t *list);

DESCRIPCIÓN

       getgroups
              Se  devuelven  como  mucho  size  identificadores  de  grupo  suplementarios  en  list.  Queda sin
              especificar si el identificador de grupo efectivo del proceso invocador se  incluye  en  la  lista
              devuelta.  (Así,  una  aplicación debería llamar también a getegid(2) y añadir o eliminar el valor
              resultante.)  Si size es cero,  list  no  se  modifica,  pero  se  devuelve  el  número  total  de
              identificadores de grupo suplementarios para el proceso.

       setgroups
              Asigna  los  identificadores  de  grupo suplementarios para el proceso. Sólo el superusuario puede
              usar esta función.

VALOR DEVUELTO

       getgroups
              En caso de éxito, se devuelve el número de grupos suplementarios.  En caso de error,  se  devuelve
              -1 y se pone en errno un valor apropiado.

       setgroups
              En caso de éxito, se devuelve 0. Si hay un error, -1, y se pone en errno un valor apropiado.

ERRORES

       EFAULT list tiene una dirección inválida.

       EPERM  Para setgroups, el usuario no es el superusuario.

       EINVAL Para  setgroups,  size  es más grande que NGROUPS (32 para Linux 2.0.32).  Para getgroups, size es
              menor que el número de IDs de grupos suplementarios, pero no es cero.

OBSERVACIONES

       Un proceso puede tener como máximo al menos NGROUPS_MAX identificadores de  grupo  suplementarios  además
       del  identificador  de  grupo efectivo (EGID).  El conjunto de identificadores de grupo suplementarios es
       heredado del proceso padre y puede ser modificado usando setgroups.  El número máximo de  identificadores
       de grupo suplementarios puede averiguarse usando sysconf(3):
           long ngroups_max;
           ngroups_max = sysconf(_SC_NGROUPS_MAX);
       El valor máximo devuelto por getgroups no puede ser mayor que el valor obtenido de esta manera más uno.

       El  prototipo para setgroups está disponible solamente si _BSD_SOURCE está definida (bien explícitamente,
       o implícitamente, no definiendo _POSIX_SOURCE o compilando con la opción -ansi).

CONFORME A

       SVr4, SVID (sólo en la distribución 4; estas llamadas al sistema no estaban presentes en  SVr3),  X/OPEN,
       4.3BSD.  La  función  getgroups  está  en  POSIX.1.   Puesto  que setgroups requiere privilegios, no está
       cubierta por POSIX.1.

VÉASE TAMBIÉN

       initgroups(3), getgid(2), setgid(2)