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'а.