login [ name ]
login –h hostname
login –f name
login is used when signing on to a system. It can also be used to switch from one user to another at any time. (Most modern shells have support for this feature built into them, however.)
If an argument is not given, login prompts for the username.
If the user is not root, and if /etc/nologin exists, the contents of this file are printed to the screen, and the login is terminated. This is typically used to prevent logins when the system is being taken down.
If the user is root, then the login must be occurring on a tty listed in /etc/securetty. Failures will be logged with the syslog facility.
After these conditions are checked, the password will be requested and checked (if a password is required for this username). Ten attempts are allowed before login dies, but after the first three, the response starts to get very slow. Login failures are reported via the syslog facility. This facility is also used to report any successful root logins.
If the file .hushlogin exists, then a quiet login is performed (this disables the checking of the checking of mail and the printing of the last login time and message of the day). Otherwise, if /var/log/lastlog exists, the last login time is printed (and the current login is recorded).
Random administrative things, such as setting the UID and GID of the tty, are performed. The TERM environment variable is preserved, if it exists; other environment variables are preserved if the –p option is used. Then the HOME, PATH, SHELL, TERM, MAIL, and LOGNAME environment variables are set. PATH defaults to /usr/local/bin:/bin:/usr/bin:. for normal users, and to / sbin:/bin:/usr/sbin:/usr/bin for root. Last, if this is not a quiet login, the message of the day is printed and the file with the user’s name in /usr/spool/mail will be checked, and a message printed if it has nonzero length.
The user’s shell is then started. If no shell is specified for the user in /etc/passwd, then /bin/sh is used. If there is no directory specified in /etc/passwd, then / is used. (The home directory is checked for the .hushlogin file described earlier.)
||Used by getty(8) to tell login not to destroy the environment.
||Used to skip a second login authentication. This specifically does not work for root, and does not appear to work well under Linux.
||Used by other servers (such as telnetd(8)) to pass the name of the remote host to login so that it may be placed in utmp and wtmp. Only the superuser may use this option.