ABCDEFGHIJKLMNOPQRSTUVWXYZ

cuserid

GETLOGIN(3)                Linux Programmer's Manual               GETLOGIN(3)



NAME
       getlogin, cuserid - get user name

SYNOPSIS
       #include <unistd.h>

       char *getlogin(void);

       #include <stdio.h>

       char *cuserid(char *string);

DESCRIPTION
       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 charac-
       ters; the string is returned in this array.  Otherwise, a pointer to  a
       string  in  a  static area is returned. This string is statically allo-
       cated 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
       ENOMEM Insufficient memory to allocate passwd structure.

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

CONFORMING TO
       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
       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 pur-
       poses.

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

SEE ALSO
       geteuid(2), getuid(2)




Linux 1.2.13                      1995-09-03                       GETLOGIN(3)