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'ON

       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.  (Asi,  una  aplicacion  deberia llamar
              tambien a getegid(2) y anadir o eliminar el  valor  resultante.)
              Si size es cero, list no se modifica, pero se devuelve el numero
              total  de  identificadores  de  grupo  suplementarios  para   el
              proceso.

       setgroups
              Asigna  los  identificadores  de  grupo  suplementarios  para el
              proceso. Solo el superusuario puede usar esta funcion.

VALOR DEVUELTO

       getgroups
              En  caso  de  exito,   se   devuelve   el   numero   de   grupos
              suplementarios.   En  caso de error, se devuelve -1 y se pone en
              errno un valor apropiado.

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

ERRORES

       EFAULT list tiene una direccion invalida.

       EPERM  Para setgroups, el usuario no es el superusuario.

       EINVAL Para  setgroups,  size  es mas grande que NGROUPS (32 para Linux
              2.0.32).  Para getgroups, size es menor que el numero de IDs  de
              grupos suplementarios, pero no es cero.

OBSERVACIONES

       Un proceso puede tener como maximo al menos NGROUPS_MAX identificadores
       de grupo suplementarios ademas  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
       numero   maximo   de  identificadores  de  grupo  suplementarios  puede
       averiguarse usando sysconf(3):
           long ngroups_max;
           ngroups_max = sysconf(_SC_NGROUPS_MAX);
       El valor maximo devuelto por getgroups no puede ser mayor que el  valor
       obtenido de esta manera mas uno.

       El  prototipo  para  setgroups esta disponible solamente si _BSD_SOURCE
       esta definida (bien explicitamente,  o  implicitamente,  no  definiendo
       _POSIX_SOURCE o compilando con la opcion -ansi).

CONFORME A

       SVr4,  SVID  (solo  en  la distribucion 4; estas llamadas al sistema no
       estaban presentes en SVr3), X/OPEN, 4.3BSD. La funcion  getgroups  esta
       en  POSIX.1.   Puesto  que  setgroups  requiere  privilegios,  no  esta
       cubierta por POSIX.1.

V'EASE TAMBI'EN

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