command is used at the beginning of each terminal session to identify oneself to the system. login is invoked by the system when a connection is first established, after the previous user has terminated the login shell by issuing the exit command.
If login is invoked as a command, it must replace the initial command interpreter. To invoke login in this fashion, type:
from the initial shell. The C shell and Korn shell have their own builtins of login. See ksh(1) and csh(1) for descriptions of login builtins and usage.
login asks for your user name, if it is not supplied as an argument, and your password, if appropriate. Where possible, echoing is turned off while you type your password, so it will not appear on the written record of the session.
If you make any mistake in the login procedure, the message:
is printed and a new login prompt will appear. If you make five incorrect login attempts, all five may be logged in /var/adm/loginlog, if it exists. The TTY line will be dropped.
If password aging is turned on and the password has "aged" (see passwd(1) for more information), the user is forced to changed the password. In this case the /etc/nsswitch.conf file is consulted to determine password repositories (see nsswitch.conf(4)). The password update configurations supported are limited to the following
passwd: files nis
passwd: files nisplus
passwd: compat (==> files nis)
passwd: compat (==> files nisplus)
Failure to comply with the configurations will prevent the user from logging onto the system because passwd(1) will fail. If you do not complete the login successfully within a certain
period of time, it is likely that you will be silently disconnected.
After a successful login, accounting files are updated. Device owner, group, and permissions are set according to the contents of the /etc/logindevperm file, and the time you last logged in is printed (see logindevperm(4)).
The user-ID, group-ID, supplementary group list, and working directory are initialized, and the command interpreter (usually ksh) is started.
The basic environment is initialized to:
For Bourne shell and Korn shell logins, the shell executes /etc/profile and $HOME/.profile, if it exists. For C shell logins, the shell executes /etc/.login, $HOME/.cshrc, and $HOME/.login. The
default /etc/profile and /etc/.login files check quotas (see quota(1M)), print /etc/motd, and check
for mail. None of the messages are printed if the file $HOME/.hushlogin exists. The name of the command interpreter is set to - (dash), followed by the last component of the interpreter's path name, for example, -sh.
If the login-shell field in the password file (see passwd(4)) is empty, then the default command interpreter, /usr/bin/sh, is used. If this field is * (asterisk), then the named directory becomes the root directory. At that point, login is re-executed at the new level, which must have its own root structure.
The environment may be expanded or modified by supplying additional arguments to login, either at execution time or when login requests your login name. The arguments may take either the form xxx or xxx=yyy.
Arguments without an = (equal sign) are placed in the environment as:
where n is a number starting at 0 and is incremented each time a new variable name is required. Variables containing an = (equal sign) are placed in the environment without modification. If they already appear in the environment, then
they replace the older values.
There are two exceptions: The variables PATH and SHELL cannot be changed. This prevents people logged into restricted shell environments from spawning secondary shells that are not restricted. login understands simple single-character quoting conventions.
Typing a \ (backslash) in front of a character quotes it and allows the inclusion of such characters as spaces and tabs.
Alternatively, you can pass the current environment by supplying the -p flag to login. This flag indicates that all currently defined environment variables should be passed, if possible, to the new environment. This option does not bypass any environment variable
restrictions mentioned above. Environment variables specified on the login line take precedence, if a variable is passed by both methods.
To enable remote logins by root, edit the /etc/default/login file by inserting a # (pound sign) before the CONSOLE=/dev/console entry. See FILES.