login(1)

НАЗВАНИЕ
login - начинает сеанс в системе

СИНТАКСИС

login [-p] [-h узел] [имя_пользователя] [ПЕРЕМЕННАЯ_ОКРУЖЕНИЯ=ЗНАЧЕНИЕ...]

login [-p] [-h узел] -f имя_пользователя

login [-p] -r узел

ОПИСАНИЕ

Программа login используется для запуска нового сеанса в системе. Как правило, эта программа вызывается автоматически и выводит приглашение login: на терминал пользователя. Программа login может восприниматься оболочкой командной строки не как простая программа и вызываться не как подпроцесс. При вызове из оболочки login должна запускаться посредством вызова exec login, что приводит к завершению работы пользователя в текущей оболочке (и, таким образом, вновь входящий в систему пользователь не попадёт в сеанс вызвавшего). Попытка запустить login из любой оболочки, отличной от регистрационной, приводит к сообщению об ошибке.

В какой-то момент пользователя попросят ввести свой пароль. Чтобы не допустить раскрытия, символы при вводе пароля не отображаются. Разрешено очень маленькое количество попыток ввода неправильного пароля, перед тем как login закончит работу и прервёт подключение.

Если включён механизм устаревания пароля учётной записи, то перед входом в систему может потребоваться смена пароля. Для этого нужно ввести старый пароль и новый пароль. Подробней об этом написано в passwd(1).

После успешного входа в систему, будут показаны сообщения от системы и о наличии почты. Можно отключить вывод файла системных сообщений из файла /etc/motd, создав в домашнем каталоге файл нулевой длины с именем .hushlogin. Сообщение о наличии почты может быть одним из: «У вас есть новая почта.», «У вас есть почта.» или «У вас нет почты.», в зависимости от наполненности почтового ящика.

Значение идентификатора учётной записи и группы будет взято из файла /etc/passwd. Значения переменных $HOME, $SHELL, $PATH, $LOGNAME и $MAIL устанавливаются согласно соответствующим полям учётной записи пользователя. Также могут быть установлены значения ulimit, umask и nice из поля GECOS.

В некоторых системах переменной окружения $TERM будет присвоен тип терминала линии tty, согласно данным из файла /etc/ttytype.

Также может быть выполнен сценарий инициализации пользовательского интерпретатора команд. Подробней об этой функции смотрите соответствующую справочную страницу.

Субсистемный вход в систему можно распознать по наличию символа «*» в начале регистрационной оболочки. Заданный домашний каталог будет использован как корень новой файловой системы, в которой регистрируется пользователь.

Программа login НЕ удаляет записи о пользователях из файла utmp. Эта задача программ getty(8) и init(8) — удалять записи о владельце терминального сеанса. Если login запускается из командной строки без exec, то пользователь продолжает находиться в системе даже после завершения работы в «порождённом сеансе».

ПАРАМЕТРЫ

-f
    Не выполнять аутентификацию, пользователь уже прошёл проверку.

    Замечание: в этом случае имя_пользователя обязательно.

-h
    Имя удалённого узла, на который нужно войти.

-p
    Сохранить окружение.

-r
    Выполнить протокол autologin для rlogin.

Параметры -r, -h и -f используются только если login запускается суперпользователем.

ПРЕДОСТЕРЕЖЕНИЯ

Данная версия login может быть собрана с разными параметрами и только некоторые из них смогут быть использованы на любой машине.

Расположение файлов может отличаться на разных системах.

Программа login НЕ удаляет записи о пользователях из файла utmp. Эта задача программ getty(8) и init(8) — удалять записи о владельце терминального сеанса. Если login запускается из командной строки без exec, то пользователь продолжает находиться в системе даже после завершения работы в «порождённом сеансе».

Как и для любой программы, запуск login может быть подделан. Если неуполномоченные пользователи имеют физический доступ к машине, то атакующий может использовать это для получения пароля следующего человека, который будет работать за машиной. Под Linux пользователи могут использовать механизм SAK для установления достоверного пути и таким образом предотвращения атаки.

НАСТРОЙКА

На работу этого инструмента влияют следующие переменные настройки из /etc/login.defs:

CONSOLE (строка)
    Если определена, то значение равно или полному пути к файлу с именами устройств (одно на строку), или списку имён устройств, перечисленных через «:». Вход суперпользователя будет разрешён только с этих устройств.

    Если не определена, то суперпользователь может входить в систему с любого устройства.

    Устройства должны указываться без начального префикса /dev/.

CONSOLE_GROUPS (строка)
    Список групп для добавления к набору пользовательских дополнительных групп при входе с консоли (определяемой переменной CONSOLE). По умолчанию не указана. Используйте осторожно — может дать пользователям постоянный доступ к этим группам, даже если они не входили с консоли.

DEFAULT_HOME (логический)
    Определяет, можно ли войти в систему, если нельзя выполнить cd в домашний каталог. По умолчанию «no».

    Если равно yes, то пользователь будет попадать в корневой каталог (/), если невозможно выполнить cd в его домашний каталог.

ENV_HZ (строка)
    Если установлена, то будет использоваться для определения переменной окружения HZ при входе пользователя в систему. Значение должно начинаться с HZ=. Обычное значение для Linux — HZ=100.

ENV_PATH (строка)
    If set, it will be used to define the PATH environment variable when a regular user login. The value is a colon separated list of paths (for example /bin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/bin:/usr/bin.

ENV_SUPATH (строка)
    If set, it will be used to define the PATH environment variable when the superuser login. The value is a colon separated list of paths (for example /sbin:/bin:/usr/sbin:/usr/bin) and can be preceded by PATH=. The default value is PATH=/sbin:/bin:/usr/sbin:/usr/bin.

ENV_TZ (строка)
    Если установлена, то будет использоваться для определения переменной окружения TZ при входе пользователя. Значение может быть равно имени часового пояса, начинающегося TZ= (например, TZ=CST6CDT), или полному пути к файлу с параметрами часового пояса (например, /etc/tzname).

    Если указан полный путь, но файл не существует или недоступен для чтения, то используется значение по умолчанию: TZ=CST6CDT.

ENVIRON_FILE (строка)
    Если этот файл существует и доступ для чтения, то из него читает регистрационное окружение. Каждая строка должна иметь формат: имя=значение.

    Строки, начинающиеся с #, считаются комментарием и игнорируются.

ERASECHAR (число)
    Символ ERASE у терминала (010 = backspace, 0177 = DEL).

    Значение может начинаться с «0» при указании значения в восьмеричной системе счисления или «0x» при указании значения в шестнадцатеричной системе счисления.

FAIL_DELAY (число)
    Задержка в секундах перед повторной попыткой после неудачного входа.

FAILLOG_ENAB (логический)
    Включить протоколирование и показ информации о неудачных входах из /var/log/faillog.

FAKE_SHELL (строка)
    Если установлена, то программа login запустит указанную оболочку вместо пользовательской оболочки заданной в /etc/passwd.

FTMP_FILE (строка)
    Если определена, то неудачные попытки входа будут протоколироваться в этот файл в формате utmp.

HUSHLOGIN_FILE (строка)
    Если определена, то этот файл может заблокировать все обычные переговоры (chatter) при входе. Если указан полный путь к файлу, то будет включён сокращённый (hushed) режим, если в этом файле указано имя пользователя или оболочка. Если указан не полный путь, то будет включён сокращённый (hushed) режим, если файл находится в домашнем каталоге пользователя.

ISSUE_FILE (строка)
    Если определена, то этот файл будет показан перед каждым появлением приглашения на вход.

KILLCHAR (число)
    Символ KILL у терминала (025 = CTRL/U).

    Значение может начинаться с «0» при указании значения в восьмеричной системе счисления или «0x» при указании значения в шестнадцатеричной системе счисления.

LASTLOG_ENAB (логический)
    Включить протоколирование и показ информации о времени входа из /var/log/lastlog.

LOGIN_RETRIES (число)
    Максимальное количество попыток входа при вводе неверного пароля.

LOGIN_STRING (строка)
    Строка-приглашение к вводу пароля. Значение по умолчанию: «Password:» или перевод этой строки на разные языки. Если вы измените эту переменную, то перевод будет отсутствовать.

    Если в строке содержится подстрока %s, то она будет заменена на имя пользователя.

LOGIN_TIMEOUT (число)
    Максимальное время в секундах, отведённое на вход.

LOG_OK_LOGINS (логический)
    Включить протоколирование успешных входов.

LOG_UNKFAIL_ENAB (логический)
    Включить показ неизвестных имён пользователей при записи неудачных попыток входа.

    Замечание: протоколирование неизвестных имён пользователя может привести к проблемам с безопасностью, если пользователь введёт свой пароль вместо своего имени.

MAIL_CHECK_ENAB (логический)
    Включает проверку и показ состояния почтового ящика при входе.

    Вы должны выключить это, если почтовый ящик проверяется из файлов автозапуска оболочки («mailx -e» или похожей командой).

MAIL_DIR (строка)
    Почтовый каталог. Данный параметр нужен для управления почтовым ящиком при изменении или удалении учётной записи пользователя. Если параметр не задан, то используется значение указанное при сборке.

MAIL_FILE (строка)
    Определяет расположение почтовых файлов пользователя относительно домашнего каталога.

Переменные MAIL_DIR и MAIL_FILE используются командами useradd, usermod и userdel для создания, перемещения или удаления почты пользователя.

Если значение MAIL_CHECK_ENAB равно yes, то они также используются для определения переменной окружения MAIL.

MOTD_FILE (строка)
    Если определена, то при входе будет показано «сообщение дня» из файла со списком значений, разделённых «:».

NOLOGINS_FILE (строка)
    Если определена, значение равно имени файла, чьё существование запретит вход для не суперпользователей. В файле должно содержаться сообщение, описывающее почему запрещён вход.

PORTTIME_CHECKS_ENAB (логический)
    Включить проверку временных ограничений, заданных в /etc/porttime.

QUOTAS_ENAB (логический)
    Включает установку ограничений ресурсов из /etc/limits и ulimit, umask и niceness из поля gecos файла passwd.

TTYGROUP (строка), TTYPERM (строка)
    Права терминала: tty входа будет принадлежать группе TTYGROUP, а права будут назначены в соответствии с TTYPERM.

    По умолчанию, терминалом владеет первичная группа пользователя, а права устанавливаются в 0600.

    В TTYGROUP может задаваться или имя группы, или числовой идентификатор группы.

    Если ваша программа write имеет «setgid» со специальной группой, которой принадлежат терминалы, то присвойте TTYGROUP номер этой группы, а TTYPERM значение 0620. В противном случае оставьте TTYGROUP закомментированной и назначьте TTYPERM значение 622 или 600.

TTYTYPE_FILE (строка)
    Если определена, то в ней указывается имя файла, в котором описано соответствие между линией tty и параметром окружения TERM. Каждая строка файла имеет формат вида «vt100 tty01».

ULIMIT (число)
    Значение ulimit по умолчанию.

UMASK (число)
    Задаёт начальное значение маски доступа для создаваемых файлов. Если не указано, то маска устанавливается в 022.

    Команды useradd и newusers используют эту маску для установки прав доступа к домашнему каталогу, который они создают.

    Также она используется программой login для задания начального значения umask пользователя. Заметим, что эта маска может быть переопределена из пользовательской строки GECOS (если установлена переменная QUOTAS_ENAB) или указанием ограничения с идентификатором K, в limits(5).

USERGROUPS_ENAB (логический)
    Включает установку группы битов umask равной битам владельца (пример: 022 -> 002, 077 -> 007) для не суперпользователей, если uid равен gid и имя пользователя совпадает с именем первичной группы.

    Если значение равно yes, то userdel удаляет пользовательскую группу, если в ней нет больше членов, а useradd по умолчанию создаёт группу с именем пользователя.

ФАЙЛЫ

/var/run/utmp
    содержит список работающих сеансов в системе

/var/log/wtmp
    содержит список завершённых сеансов работы с системой

/etc/passwd
    содержит информацию о пользователях

/etc/shadow
    содержит защищаемую информацию о пользователях

/etc/motd
    содержит системные сообщения за день

/etc/nologin
    при существовании файла блокируется доступ в систему обычным пользователям

/etc/ttytype
    содержит список типов терминалов

$HOME/.hushlogin
    при существовании файла системные сообщения при входе в систему не выводятся

/etc/login.defs
    содержит конфигурацию подсистемы теневых паролей

СМОТРИТЕ ТАКЖЕ

mail(1), passwd(1), sh(1), su(1), login.defs(5), nologin(5), passwd(5), securetty(5), getty(8).