Вход в систему
login [-fpq] [-c|u] [-d задержка] [-h хост] [-m число попыток] [-t таймаут] [имя_пользователя [переменная1 переменная2 ...]]
ЗОСРВ
«Нейтрино»
редакции 2018
опция -f удалена, по соображениям безопасности _CS_PATH
). /etc/default/login
, определяются независимо от наличия опции -p.ЗОСРВ «Нейтрино»
aarch64, 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()
Вход в систему, выход из нее и завершение работы
Предыдущий раздел: Утилиты