Provided by: manpages-es_1.55-10_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)