Вход в систему
login [-fpq] [-c|u] [-d задержка] [-h хост] [-m число попыток] [-t таймаут] [имя_пользователя [переменная1 переменная2 ...]]
SHELL
, HOME
, LOGNAME
, USERNAME
(то же, что и LOGNAME
), TERM
(если определена в среде вызывающего объекта) и PATH
(значение определяется значением _CS_PATH
). /etc/default/login
, определяются независимо от наличия опции -p.ЗОСРВ «Нейтрино»
arm, armv7, e2k, mips, ppc, x86
Команда login запускает сеанс, связанный с определенным пользователем. Она используется при входе первого пользователя в систему на компьютере или входе под другим именем. Если имя_пользователя при вызове команды login не указано, то запрашивается имя пользователя. Приглашение на ввод пароля выдается всегда.
Для этой утилиты в полномочиях пользователя необходимо установить бит setuid ("set user ID" (установить идентификатор пользователя)). В случае использования утилит mkefs, mketfs или mkifs на хосте Windows для включения этой утилиты в образ необходимо задать атрибут perms для явного определения полномочий, а также атрибуты uid и gid для корректной настройки принадлежности. |
Команда login проверяет имя пользователя и пароль по базе данных паролей и при успешной проверке запускает сеанс пользователя. Если имя пользователя и пароль не является допустимым, утилита login запрашивает их повторный ввод.
В целях обеспечения совместимости утилита login проверяет пароль с применением трех методов шифрования:
Проверка является успешной в случае, если соответствие пароля имеет место при любом варианте шифрования. Опции -c и -u позволяют несколько повысить безопасность, т.к. используется только один вариант шифрования.
Утилита login устанавливает идентификатор пользователя и идентификатор группы, а также текущий рабочий каталог, затем запускает командный интерпретатор в соответствии со спецификациями, указанными в базе данных паролей.
Если запустить командный интерпретатор не удается, утилита login выводит сообщение No Shell и завершает работу. Запуск командного интерпретатора выполняется с указанием тире (-) перед его именем в качестве аргумента 0, что является указанием командному интерпретатору на выполнение подпрограммы запуска.
Утилита login определяет переменные среды SHELL
, HOME
, LOGNAME
, USERNAME
(то же, что и LOGNAME
), TERM
(если определена в среде вызывающего объекта) и PATH
(значение определяется значением _CS_PATH
). Для получения дополнительной информации об установке переменной среды PATH
см. "Задание переменных PATH и LD_LIBRARY_PATH" в главе «Настройка среды» документа «Руководство системного программиста (администратора)» КПДА.10964-01.
Кроме того, утилита login обновляет учетную информацию системы в файлах /var/log/utmp
, /var/log/wtmp
и /var/log/lastlog
, если эти файлы существуют.
Утилита login не создает файлы /var/log/utmp , /var/log/wtmp и /var/log/lastlog , если они не существуют. Размеры этих файлов могут быстро увеличиться, что негативно влияет на встраиваемую систему ввиду ограниченности ее ресурсов. |
Утилита login также определяет переменные среды, указанные в файле /etc/default/login
. В этом файле можно указать, какие параметры настройки переменных среды необходимо использовать в различных сеансах входа в систему. Если при запуске утилиты login какая-либо переменная не определена, и файл /etc/default/login
содержит значение этой переменной по умолчанию, то будет использовано значение по умолчанию из файла /etc/default/login
. Если этот файл не содержит значение переменной по умолчанию, то утилита login выполняет сброс переменной. Если при запуске утилиты login переменная уже определена, и указана опция -p, то имеющееся значение сохраняется даже в том случае, если файл /etc/default/login
содержит значение по умолчанию для этой переменной. Опция -p позволяет передавать переменные среды, зависящие от узлов, из процесса запуска системы к приложениям.
Переменные среды можно определять в командной строке после имени пользователя в следующей форме: ПЕРЕМЕННАЯ[=ЗНАЧЕНИЕ]. Пример:
login thomasf APPLES=RED TOMATOES
добавляет в среду входа в систему следующее:
$ echo $APPLES RED $ echo $TOMATOES 1
Значения, указанные в командной строке, всегда добавляются в новую среду (независимо от опции -p) и переопределяют имеющиеся значения. Значения переменных SHELL
, HOME
, TERM
, LOGNAME
, USER
, установленные утилитой login, переопределяют значения, указанные в командной строке.
Переменные среды, значения которых должны сохраняться, можно задать без использования опции -p путем внесения их имен в файл /etc/default/login
. Например, файл /etc/default/login
содержит следующее:
SYSNAME TZ PHOTON
В этом случае при запуске утилиты login без опции -p в новую среду передаются переменные SYSNAME
, TZ
и PHOTON
(при их наличии). Эти значения могут быть переопределены значениями в командной строке.
Выполнить команду login можно только из начального командного интерпретатора или при отсутствии активного сеанса; вложение команд login невозможно.
Если утилита login запускается из начального командного интерпретатора, то командный интерпретатор, из которого она была запущена, завершает работу.
Базовые подсистемы ЗОСРВ «Нейтрино»
logout, newgrp, passwd, phlogin2, sh, su
crypt(), endutent(), getutent(), getutid(), getutline(), pututline(), setutent(), utmpname()
Предыдущий раздел: Утилиты