LOGIN(1)

НАЗВАНИЕ
login - вход в систему

СИНТАКСИС


   login  [имя [аргумент_окружения ...]]

ОПИСАНИЕ
Команда login используется в начале каждого сеанса работы за терминалом и дает возможность пользователю идентифицировать себя для системы. Команду login можно вызвать явно или ее может выдать система при первом установлении связи. Эта команда также выдается системой в тот момент, когда предыдущий пользователь закончил сеанс работы. Информация о том, как начать работу, имеется в начале этого Справочника (см. КАК НАЧАТЯ?).

Если команда login вызывается явно, она должна заместить исходный интерпретатор команд. Данное действие выполняется после ввода в первоначальном shell'е строки


     exec login

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

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

После успешного входа в систему модифицируются учетные файлы, выполняется процедура /etc/profile и выдается дополнительное сообщение из файла /etc/motd, если файл не пуст. Устанавливаются идентификатор пользователя, идентификатор группы, рабочий каталог и интерпретатор команд [обычно это sh(1)]. Если в рабочем каталоге существует файл .profile, то он выполняется. Все эти спецификации находятся в строке файла /etc/passwd, описывающей данного пользователя. Имя интерпретатора команд состоит из символа -, за которым идет последний компонент маршрутного имени интерпретатора (например, -sh). Если это поле в файле паролей пусто, то используется имя стандартного интерпретатора команд /bin/sh. Если в этом поле стоит символ *, то каталог, указанный в предыдущем поле, становится корневым - стартовой точкой при поиске файлов по маршрутным именам, начинающимся с символа /. Затем в новой иерархии файлов, которая должна содержать свои /bin/login и /etc/passwd, команда login выполняется повторно.

Стандартное окружение инициализируется следующим образом:


     HOME=входной_каталог

     PATH=:/bin:/usr/bin

     SHELL=последнее_поле_строки_из_файла_паролей

     MAIL=/usr/mail/входное_имя

     TZ=информация_о_часовом_поясе

Окружение можно расширить или модифицировать с помощью дополнительных аргументов команды login либо во время ее запуска, либо в момент запроса входного имени. Аргументы могут быть в двух формах: либо yyy, либо xxx=yyy. Аргументы без знака равенства помещаются в окружение в виде


     Ln=yyy

где n - номер, отсчитываемый от 0 и увеличивающийся на 1 всякий раз, когда требуется новое имя переменной. В аргументах вида xxx=yyy xxx означает имя переменной, yyy - ее значение. Именно так эта пара и помещается в окружение. Если одноименная переменная уже входила в окружение, ее старое значение пропадает, однако имеются два исключения: значения переменных PATH и SHELL изменить нельзя. В результате пользователи, вошедшие в ограниченный shell [см rsh(1)], лишены возможности снять ограничения.

Команды login и getty допускают экранирование посредством символа \. Тем самым в аргументы могут входить пробелы и символы табуляции, если перед ними поместить \.

ФАЙЛЫ


	/etc/utmp                  Файл учета.

	/etc/wtmp                  Файл учета.

	/usr/mail/имя_пользователя Почтовый ящик пользователя.

	/etc/motd                  Дополнительное сообщение.

	/etc/passwd                Файл паролей.

	/etc/profile               Системный профайл.

	.profile                   Пользовательский профайл.

СМ. ТАКЖЕ
mail(1), newgrp(1), sh(1), su(1).
passwd(4), profile(4), environ(5) в Справочнике программиста.

ДИАГНОСТИКА

login incorrect
Имя пользователя или пароль не соответствуют зарегистрированным в системе.

No shell, cannot open password file, no directory
Обратитесь к администратору системы.

No utmp entry, You must exec "login" from the lowest level "sh"
Вы попытались выполнить login как команду без использования внутренней команды shell'а exec или пытались выполнить ее не из первоначального shell'а.