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/)).
To specify the alternate authentication mechanism
style,
the string
:
is appended to the user name (i.e.,
user.
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 or when an already
logged in user is logging in as themselves.
-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/)).
-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/)).
-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)
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, such as
uucp().
login
then records an entry in the
wtmp(5)
and
utmp(5)
files and executes the user's command interpreter.
login
enters information into the environment (see
environ(7))
specifying the user's home directory
(HOME),
command interpreter
(SHELL),
search path
(PATH),
terminal type
(TERM),
and user name
(both LOGNAMEand USER
).
The standard shells,
csh(1)
and
sh(1),
do not fork before executing the
login
utility.
Note that if
login
is invoked by a non-root user, it will execute
su(1)
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.
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.