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

NOMBRE

       getlogin, cuserid - obtiene nombre de usuario

SINOPSIS

       #include <unistd.h>

       char * getlogin ( void );

       #include <stdio.h>

       char * cuserid ( char *cadena );

DESCRIPCIÓN

       getlogin devuelve un puntero a una cadena de caracteres que contiene el
       nombre del usuario que está en la terminal controladora del proceso,  o
       un puntero nulo si esta información no puede determinarse. La cadena se
       reserva estáticamente y puede ser sobreescrita en subsecuentes llamadas
       a esta función o a cuserid.

       cuserid  devuelve un puntero a una cadena de caracteres que contiene un
       nombre de usuario asociado con el UID efectivo del proceso.  Si  cadena
       no  es  un  puntero  nulo, debe ser un vector que pueda alojar al menos
       L_cuserid caracteres; la cadena se coloca en este vector.  De otro modo
       se devuelve un puntero a una cadena en un área estática. Esta cadena se
       reserva estáticamente y puede ser sobreescrita en subsecuentes llamadas
       a esta función o a getlogin.

       La macro L_cuserid es una constante entera que indica cuán grande puede
       necesitar ser un vector que almacene un nombre de usuario.  Se  declara
       en stdio.h.

       Estas  funciones  permiten  a  su programa identificar positivamente al
       usuario que lo está ejecutando (cuserid) o al que ha  entrado  en  esta
       sesión   (getlogin).   (Que  pueden  diferir  cuando  están  implicados
       programas SUID).

       Para la mayoría de los propósitos, es más útil emplear la  variable  de
       ambiente  LOGNAME  para saber quién es el usuario. Esto es más flexible
       precisamente porque el usuario puede dar un valor arbitrario a LOGNAME.

ERRORES

       ENOMEM Memoria insuficiente para alojar la estructura passwd.

FICHEROS

       /etc/passwd             fichero de datos de cuentas de usuario
       /var/run/utmp  (traditionally   /etc/utmp;                  some   libc
       versions used /var/adm/utmp)

CONFORME A

       POSIX.1.  System V tiene una función cuserid que usa el UID real en vez
       del  efectivo. La función cuserid se incluyó en la versión de POSIX del
       año 1988, pero se quitó en la de 1990.

FALLOS

       Desafortunadamente, es a meundo bastante fácil el liar a getlogin().  A
       veces  no  funciona  en  absoluto,  porque  algún  programa estropeó el
       fichero utmp. Frecuentemente, sólo da los  primeros  8  caracteres  del
       nombre   de  entrada.  El  usuario  que  esté  actualmente  en  la  tty
       controladora de nuestro programa no tiene por qué ser el  que  lo  hubo
       ejecutado.   Evite  getlogin()  para  propósitos  relacionados  con  la
       seguridad.

       Nadie sabe con precisión qué es  lo  que  hace  cuserid();  evítelo  en
       programas  transportables; evítelo de todas formas siempre: en su lugar
       emplee getpwuid(getwuid()), si eso es  lo  que  pretende.   NO  UTILICE
       cuserid().

VÉASE TAMBIÉN

       geteuid(2), getuid(2)