.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Copyright 1995 James R. Van Zandt .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" Changed Tue Sep 19 01:49:29 1995, aeb: moved from man2 to man3 .\" added ref to /etc/utmp, added BUGS section, etc. .\" Translated into Spanish Mon Jan 26 1998 by Gerardo Aburruzaga .\" García .\" Translation revised on Sun Apr 4 1999 by Juan Piernas .\" Traducción revisada por Miguel Pérez Ibars el 2-marzo-2005 .\" .TH GETLOGIN 3 "3 septiembre 1995" "Linux 1.2.13" "Manual del Programador de Linux" .SH NOMBRE getlogin, cuserid \- obtiene nombre de usuario .SH SINOPSIS .B #include .sp .BI "char * getlogin ( void );" .sp .B #include .sp .BI "char * cuserid ( char *" cadena " );" .SH DESCRIPCIÓN \fBgetlogin\fP 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 \fBcuserid\fP. .PP \fBcuserid\fP devuelve un puntero a una cadena de caracteres que contiene un nombre de usuario asociado con el UID efectivo del proceso. Si \fIcadena\fP no es un puntero nulo, debe ser un vector que pueda alojar al menos \fBL_cuserid\fP 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 \fBgetlogin\fP. .PP La macro \fBL_cuserid\fP es una constante entera que indica cuán grande puede necesitar ser un vector que almacene un nombre de usuario. Se declara en \fBstdio.h\fP. .PP Estas funciones permiten a su programa identificar positivamente al usuario que lo está ejecutando (\fBcuserid\fP) o al que ha entrado en esta sesión (\fBgetlogin\fP). (Que pueden diferir cuando están implicados programas SUID). .PP Para la mayoría de los propósitos, es más útil emplear la variable de ambiente \fBLOGNAME\fP para saber quién es el usuario. Esto es más flexible precisamente porque el usuario puede dar un valor arbitrario a \fBLOGNAME\fP. .SH ERRORES .TP .B ENOMEM Memoria insuficiente para alojar la estructura passwd. .SH FICHEROS .nf \fI/etc/passwd\fP fichero de datos de cuentas de usuario .fi \fI/var/run/utmp\fP (traditionally \fI/etc/utmp\fP; some libc versions used \fI/var/adm/utmp\fP) .fi .SH "CONFORME A" POSIX.1. System V tiene una función \fBcuserid\fP que usa el UID real en vez del efectivo. La función \fBcuserid\fP se incluyó en la versión de POSIX del año 1988, pero se quitó en la de 1990. .SH 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. .LP 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(). .SH "VÉASE TAMBIÉN" .BR geteuid "(2), " getuid (2)