*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Linux man pages -> getlogin (3)              
Title
Content
Arch
Section
 

GETLOGIN(3)

Contents


NAME    [Toc]    [Back]

       getlogin, cuserid - get user name

SYNOPSIS    [Toc]    [Back]

       #include <unistd.h>

       char * getlogin ( void );

       #include <stdio.h>

       char * cuserid ( char *string );

DESCRIPTION    [Toc]    [Back]

       getlogin  returns a pointer to a string containing the name of the user
       logged in on the controlling terminal of the process, or a null pointer
       if  this  information  cannot  be determined.  The string is statically
       allocated and might be overwritten on subsequent calls to this function
       or to cuserid.

       cuserid returns a pointer to a string containing a user name associated
       with the effective user ID of the process.  If string  is  not  a  null
       pointer, it should be an array that can hold at least L_cuserid characters;
 the string is returned in this array.  Otherwise, a pointer to  a
       string  in  a  static area is returned. This string is statically allocated
 and might be overwritten on subsequent calls to this function  or
       to getlogin.

       The  macro  L_cuserid is an integer constant that indicates how long an
       array you might need to store a user name.  L_cuserid  is  declared  in
       stdio.h.

       These  functions  let  your program identify positively the user who is
       running (cuserid) or the user who logged in  this  session  (getlogin).
       (These can differ when setuid programs are involved.)

       For  most  purposes,  it is more useful to use the environment variable
       LOGNAME to find out who the user is.  This is more  flexible  precisely
       because the user can set LOGNAME arbitrarily.

ERRORS    [Toc]    [Back]

       ENOMEM Insufficient memory to allocate passwd structure.

FILES    [Toc]    [Back]

       /etc/passwd    password database file
       /var/run/utmp  (traditionally /etc/utmp;
		      some libc versions used /var/adm/utmp)

CONFORMING TO    [Toc]    [Back]

       POSIX.1.   System  V has a cuserid function which uses the real user ID
       rather than the effective user ID. The cuserid function was included in
       the 1988 version of POSIX, but removed from the 1990 version.

BUGS    [Toc]    [Back]

       Unfortunately,  it  is often rather easy to fool getlogin().  Sometimes
       it does not work at all, because some program messed up the utmp  file.
       Often, it gives only the first 8 characters of the login name. The user
       currently logged in on the controlling tty of our program need  not  be
       the  user  who  started it.  Avoid getlogin() for security-related purposes.


       Nobody knows precisely what cuserid() does - avoid it in portable  programs
  - avoid it altogether - use getpwuid(geteuid()) instead, if that
       is what you meant.  DO NOT USE cuserid().

SEE ALSO    [Toc]    [Back]

      
      
       geteuid(2), getuid(2)




Linux 1.2.13			  1995-09-03			   GETLOGIN(3)
[ Back ]
 Similar pages
Name OS Title
ttyslot Tru64 Find the slot for the current user in the user accounting database
maxuprc HP-UX limits the maximum number of concurrent user processes per user
setpwent_r Tru64 Access user attribute information in the user database
setpwfile Tru64 Access user attribute information in the user database
fgetpwent_r Tru64 Access user attribute information in the user database
putpwent Tru64 Access user attribute information in the user database
fgetpwent Tru64 Access user attribute information in the user database
getpwent Tru64 Access user attribute information in the user database
getpwuid Tru64 Access user attribute information in the user database
endpwent_r Tru64 Access user attribute information in the user database
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service