---
name: "login"
section: "1"
platform: "macos"
package: "system_cmds"
version: "1042.120.1"
release: "macOS 26.5"
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** \[**-fpq**\] \[**-h** *hostname*\] \[*user*\]

**login** **-f** \[**-lpq**\] \[**-h** *hostname*\] \[*user* \[*prog* \[*args...*\]\]\]

## 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 configurable via [pam(8)](/pam/8.md). Password authentication is the default.

The following options are available:

- **-f**

  When a user name is specified, this option indicates that proper authentication has already been done and that no password need be requested. This option may only be used by the super-user or when an already logged in user is logging in as themselves.

  With the **-f** option, an alternate program (and any arguments) may be run instead of the user's default shell. The program and arguments follows the user name.

- **-h**

  Specify the host from which the connection was received. It is used by various daemons such as [telnetd(8)](/telnetd/8.md). This option may only be used by the super-user.

- **-l**

  Tells the program executed by **login** that this is not a login session (by convention, a login session is signalled to the program with a hyphen as the first character of *argv\[0\]*; this option disables that), and prevents it from [chdir(2)](/chdir/2.md)ing to the user's home directory. The default is to add the hyphen (this is a login session).

- **-p**

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

- **-q**

  This forces quiet logins, as if a *.hushlogin* is present.

If the file */etc/nologin* exists, **login** dislays 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.

Immediately after logging a user in, **login** displays the system copyright notice, the date and time the user last logged in, 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. If **-q** is specified, all of these messages are suppressed. This is to simplify logins for non-human users, such as [uucp(1)](/uucp/1.md). **login** then records an entry in [utmpx(5)](/utmpx/5.md) and the like, and executes the user's command interpreter (or the program specified on the command line if **-f** is specified).

The **login** utility 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).

Some shells may provide a builtin **login** command which is similar or identical to this utility. Consult the [builtin(1)](/builtin/1.md) manual page.

The **login** utility will submit an audit record when login succeeds or fails. Failure to determine the current auditing state will result in an error exit from **login**.

## FILES

- */etc/motd*

  message-of-the-day

- */etc/nologin*

  disallows logins

- */var/run/utmpx*

  current logins

- */var/mail/user*

  system mailboxes

- *.hushlogin*

  makes login quieter

- */etc/pam.d/login*

  [pam(8)](/pam/8.md) configuration file

- */etc/security/audit\_user*

  user flags for auditing

- */etc/security/audit\_control*

  global flags for auditing

## SEE ALSO

[builtin(1)](/builtin/1.md), [chpass(1)](/chpass/1.md), [csh(1)](/csh/1.md), [newgrp(1)](/newgrp/1.md), [passwd(1)](/passwd/1.md), [rlogin(1)](/rlogin/1.md), [getpass(3)](/getpass/3.md), [utmpx(5)](/utmpx/5.md), [environ(7)](/environ/7.md)

## HISTORY

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