Method: Etc.getlogin

Defined in:
etc.c

.getloginObject

getlogin -> String

Returns the short user name of the currently logged in user. Unfortunately, it is often rather easy to fool ::getlogin.

Avoid ::getlogin for security-related purposes.

If ::getlogin fails, try ::getpwuid.

See the unix manpage for getpwuid(3) for more detail.

e.g.

Etc.getlogin -> 'guest'


114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'etc.c', line 114

static VALUE
etc_getlogin(VALUE obj)
{
    char *;

#ifdef HAVE_GETLOGIN
     = getlogin();
    if (!)  = getenv("USER");
#else
     = getenv("USER");
#endif

    if () {
#ifdef _WIN32
  rb_encoding *extenc = rb_utf8_encoding();
#else
  rb_encoding *extenc = rb_locale_encoding();
#endif
  return rb_external_str_new_with_enc(, strlen(), extenc);
    }

    return Qnil;
}