---
name: "login"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/login"
---

# login(1)

log into the computer

## NAME

**login** – log into the computer

## SYNOPSIS

**login** \[**-fp**\] \[**-h** *hostname*\] \[**-L** *local-addr*\] \[**-R** *remote-addr*\] \[**-u** *username*\] \[*user*\]

## DESCRIPTION

The **login** utility logs users (and pseudo-users) into the computer system.

If no user is specified, or if a user is specified and authentication of the user fails, **login** prompts for a user name. Authentication of users is normally done via passwords, though external authentication mechanisms may be used (see [login.conf(5)](/login.conf/5.md)). To specify the alternate authentication mechanism *style*, the string :*style* is appended to the user name (i.e., *user*:*style*).

The options are as follows:

- **-f**

  The **-f** option is used when a user name is specified to indicate that proper authentication has already been done and that no password need be requested. This option may only be used by the superuser.

- **-h** *hostname*

  Specifies the host from which the connection was received. This option may only be used by the superuser.

- **-L** *local-addr*

  The **-L** option specifies the local address of a socket. This information is passed on to any classify script (see [login.conf(5)](/login.conf/5.md)).

- **-p**

  By default, **login** discards any previous environment. The **-p** option disables this behavior.

- **-R** *remote-addr*

  The **-R** option specifies the remote address of a socket. This information is passed on to any classify script (see [login.conf(5)](/login.conf/5.md)).

- **-u** *username*

  Specifies the remote user that initiated the connection. This option may only be used by the superuser.

If the file */etc/nologin* exists (and the “ignorenologin” boolean is not set in the user's login class), **login** displays its contents to the user and exits. This is used by [shutdown(8)](/shutdown/8.md) to prevent users from logging in when the system is about to go down.

If the file */etc/fbtab* exists, **login** changes the protection and ownership of certain devices specified in this file.

If the file */var/log/failedlogin* exists, **login** will record failed login attempts in this file.

Immediately after logging a user in, **login** displays the system copyright notice, the date and time the user last logged in, the date and time of the last unsuccessful login (if the file */var/log/failedlogin* exists), the message of the day as well as other information. If the file “*.hushlogin*” exists in the user's home directory, all of these messages are suppressed. This is to simplify logins for non-human users. **login** then records an entry in the [wtmp(5)](/wtmp/5.md) and [utmp(5)](/utmp/5.md) files and executes the user's command interpreter.

**login** enters information into the environment (see [environ(7)](/environ/7.md)) specifying the user's home directory (HOME), command interpreter (SHELL), search path (PATH), terminal type (TERM), and user name (both LOGNAME and USER).

The standard shells, [csh(1)](/csh/1.md) and [sh(1)](/sh/1.md), do not fork before executing the **login** utility.

Note that if **login** is invoked by a non-root user, it will execute [su(1)](/su/1.md) in **login** emulation mode instead.

## ENVIRONMENT

**login** sets the following environment variables:

- HOME

  The user's home directory, as specified by the password database.

- SHELL

  The user's shell, as specified by the password database.

- TERM

  The user's terminal type, if it can be determined.

- LOGNAME

  The user's login name.

- USER

  Same as LOGNAME.

- MAIL

  The user's mailbox.

- REMOTEHOST

  The name of the host from which the user logged in, if the **-h** flag was specified.

- REMOTEUSER

  The name of the remote user who initiated the connection, if the **-u** flag was specified.

Other environment variables may be specified in */etc/login.conf* via the “setenv” capability.

## FILES

- */etc/fbtab*

  changes device protections

- */etc/login.conf*

  login configuration

- */etc/motd*

  message-of-the-day

- */etc/nologin*

  disallows logins

- */var/log/failedlogin*

  failed login account records

- */var/log/lastlog*

  last login account records

- */var/log/wtmp*

  login account records

- */var/mail/user*

  system mailboxes

- */var/run/utmp*

  current logins

- *.hushlogin*

  makes login quieter

## SEE ALSO

[chpass(1)](/chpass/1.md), [passwd(1)](/passwd/1.md), [su(1)](/su/1.md), [readpassphrase(3)](/readpassphrase/3.md), [setusercontext(3)](/setusercontext/3.md), [fbtab(5)](/fbtab/5.md), [login.conf(5)](/login.conf/5.md), [utmp(5)](/utmp/5.md), [environ(7)](/environ/7.md)

## HISTORY

A **login** utility appeared in Version 2 AT&T UNIX.
