ИМЯ¶
agetty -
альтернатива
Linux getty
СИНОПСИС¶
agetty [options] port [baud_rate...]
[term]
ОПИСАНИЕ¶
agetty
открывает
порт tty,
запрашивает
имя
пользователя
и вызывает
команду /bin/login.
Обычно она
вызывается
командой
init(8).
agetty имеет
несколько
не
стандартных
(non-standard)
функций,
которые
полезны
для
проводных
и
коммутируемых
линий:
•Адаптирует
настройки tty
к битам
четности, а
также к
стиранию,
прерыванию,
символам
конца
строки и
прописным
буквам при
чтении
имени
пользователя.
Программа
может
обрабатывать
7-разрядные
символы с
четной,
нечетной,
нулевой
или
пробельной
четностью,
а также
8-разрядные
символы
без
четности.
Распознаются
следующие
специальные
символы: Control-U
(отмена); DEL и backspace
(стирание);
возврат
каретки и
перевод
строки
(конец
строки).
Смотрите
также
параметры
--erase-chars и --kill-chars.
•Дополнительно
вычисляет
скорость
передачи
данных в
бодах на
основе
сообщений
о
подключении
(CONNECT),
создаваемых
модемами,
совместимыми
с Hayes(tm).
•При
необходимости
не вешает
трубку,
когда
получает
уже
открытую
линию
(полезно
для
приложений
обратного
вызова).
•Дополнительно
не
отображает
содержимое
файла /etc/issue.
•При
необходимости
отображает
альтернативные
файлы или
каталоги
вместо /etc/issue
или /etc/issue.d.
•При
необходимости
может не
запрашивать
имя
пользователя.
•При
необходимости
может
вызывать
нестандартную
программу
входа в
систему
вместо /bin/login.
•При
необходимости
включает
аппаратурное
управление
потоком
данных.
•Линия
связи
может быть
преобразована
в
локальную
без
необходимости
определения
несущей.
Эта
программа
не
использует
файлы /etc/gettydefs (System V)
или /etc/gettytab (SunOS 4).
АРГУМЕНТЫ¶
port
Имя пути
относительно
каталога
/dev.
Если
указан
символ "-",
то
предполагается,
что
стандартный
ввод уже
подключен
к порту tty и
что
соединение
с
удаленным
пользователем
уже
установлено.
В System V перед
аргументом
"-" port должны
быть
указаны
символы "--".
baud_rate,...
Разделенный
запятыми
список
скоростей
передачи в
бодах.
Каждый раз,
когда
agetty
получает
символ BREAK,
осуществляется
перемещение
по списку,
который
обрабатывается
в круговом
цикле.
Скорость
передачи
данных в
бодах
должна
быть
указана в
порядке
убывания,
чтобы
можно было
также
использовать
нулевой
символ (Ctrl-@)
для
переключения
скорости
передачи
данных в
бодах.
Этот
аргумент
является
необязательным
и ненужным
для virtual terminals
(виртуальных
терминалов).
По
умолчанию
для serial terminals
(последовательных
терминалов)
используется
текущая
скорость
передачи
данных в
бодах
(смотрите
--keep-baud), а в
случае
неудачи -
значение
по
умолчанию
'9600'.
term
Значение,
которое
будет
использоваться
для
переменной
окружения
TERM. Это
значение
переопределяет
всё, что
могло быть
установлено
в
init(1) и
наследуется
логином и
командной
оболочкой.
Значение
по
умолчанию -
'vt100' или ' linux' для Linux
на
виртуальном
терминале,
или 'hurd' для GNU Hurd
на
виртуальном
терминале.
ПАРАМЕТРЫ¶
-8, --8bits
В
предположении,
что tty
является
8-битным и,
следовательно,
отключить
определение
четности.
-a, --autologin username
Автоматически
выполнить
вход для
указанного
пользователя,
не
запрашивая
его имя или
пароль.
Использование
этой опции
приводит к
добавлению
параметра
-f username и
аргумента
в
командную
строку
/bin/login.
Смотрите
параметр
--login-options,
который
можно
использовать
для
изменения
этого
параметраu043F]оведения
cqs.
Примечание.
Параметр
--autologin может
повлиять
на способ,
которым getty
инициализирует
последовательную
линию,
поскольку
при
автоматическом
входе в
систему agetty
не
считывает
данные из
линии и не
имеет
возможности
оптимизировать
настройку
линии.
-c, --noreset
Не
сбрасывать
флажки
терминала
(режимы
управления).
Более
подробную
информацию
смотрите в
termios(3).
-E, --remote
Обычно
команде
login(1)
присваивается
имя
удаленного
хоста,
когда она
вызывается
чем-то
вроде
telnetd(8).
Этот
параметр
позволяет
agetty
передавать
то, что она
использует
в качестве
имени
хоста в
login(1)
для
использования
в
utmp(5).
Смотрите
--host,
login(1) и
utmp(5).
Если
задан
параметр
--host fakehost, то в
командную
строку /bin/login
добавляются
параметр и
аргумент -h
fakehost.
Если
задан
параметр
--nohostname, то в
командную
строку /bin/login
добавляется
параметр
-H.
Смотрите
параметр
--login-options.
-f, --issue-file path
Указывает
список
файлов и
каталогов,
разделенный
символом
":", который
должен
отображаться
вместо /etc/issue
(или
другого).
Отображаются
все
указанные
файлы и
каталоги,
отсутствующие
или пустые
файлы
автоматически
игнорируются.
Если
указанный
путь
является
каталогом,
то
отображаются
все файлы с
расширением
.issue в
порядке
сортировки
по версиям
из
каталога.
Это
позволяет
отображать
пользовательские
сообщения
на разных
терминалах.
Параметр
--noissue
переопределяет
этот
параметр.
--show-issue
Вывести
на дисплей
содержимое
текущего
файла
задач (или
другого) на
текущий
терминал и
завершить
работу.
Используйте
этот
параметр
для
проверки
текущей
настройки,
он не
предназначена
для
каких-либо
других
целей.
Обратите
внимание,
что при
выводе
может
использоваться
некоторая
информация
по
умолчанию
или
неполная
информация,
поскольку
правильный
вывод
зависит от
терминала
и
командной
строки.
-h, --flow-control
Включить
аппаратурное
управление
потоком (RTS/CTS).
Приложение
само может
отключить
программный
протокол
потока (XON/XOFF),
если это
необходимо.
-H, --host fakehost
Записать
указанный
fakehost в utmp-файл.
Обычно
логин
хоста не
указывается,
поскольку
agetty
используется
для
локальных
проводных
подключений
и консолей.
Однако
этот
параметр
может быть
полезен
для
идентификации
концентраторов
терминалов
и тому
подобного.
-i, --noissue
Не
выводить
содержимое
файла /etc/issue
(или
другого)
перед
запросом
на вход в
систему.
Терминалы
или
коммуникационное
оборудование
могут
запутаться
при
получении
большого
количества
текста с
неправильной
скоростью
передачи
данных;
сценарии
удаленного
доступа
могут не
работать,
если перед
запросом
на вход в
систему
будет
слишком
много
текста.
-I, --init-string initstring
Задать
начальную
строку для
отправки
на tty или
модем,
прежде чем
отправлять
что-либо
еще. Это
может быть
использовано
для
инициализации
модема.
Непечатаемые
символы
могут быть
отправлены
путем
ввода их
восьмеричного
кода, перед
которым
ставится
обратная
косая
черта (\).
Например,
чтобы
отправить
символ
перевода
строки (ASCII 10,
восьмеричный
012), введите \12.
-J, --noclear
Не
очищать
экран до
запроса
имени
пользователя.
По
умолчанию
экран
очищается.
-l, --login-program login_program
Вызвать
программу,
указанную
login_program, вместо
программы,
указанной
/bin/login. Это
позволяет
использовать
нестандартную
программу
для входа в
систему.
Такая
программа
может,
например,
запрашивать
пароль
удаленного
доступа
или
использовать
другой
файл
паролей.
Смотрите
параметр
--login-options.
-L, --local-line[=mode]
Установить
флажок в
строке LOCAL.
Необязательным
аргументом
mode может
быть
auto,
always
или
never. Если
аргумент
mode
не
определён,
то по
умолчанию
используется
always. Если
параметр
--local-line вообще
не указан,
то по
умолчанию
используется
параметр
auto.
always
Сделать
линию
локальной
и не
требовать
определения
несущей.
Это может
быть
полезно,
если у вас
есть
локально
подключенный
терминал,
на котором
последовательная
линия не
устанавливает
сигнал
определения
несущей.
never
Явным
образом
удаляет
флаг CLOCAL из
настройки
линии, а на
линии
ожидается
сигнал
обнаружения
несущей.
auto
Это
значение
программы
agetty по
умолчанию.
Не
изменяет
параметр CLOCAL
и
соответствует
параметру,
установленному
ядром.
-m, --extract-baud
Попробовать
определить
скорость
передачи
данных в
бодах из
сообщения
о
состоянии
CONNECT,
выдаваемого
модемами,
совместимыми
с Hayes(tm). Эти
сообщения
о
состоянии
имеют
следующий
вид: "<junk><speed><junk>".
Программа
agetty
предполагает,
что модем
отправляет
сообщение
о
состоянии
с той же
скоростью,
которая
указана в
(первом)
значении
baud_rate в
командной
строке.
Поскольку
функция
--extract-baud может
не
работать в
сильно
загруженных
системах,
вам все
равно
следует
включить
обработку
прерываний,
перечислив
все
ожидаемые
скорости
передачи в
командной
строке.
--list-speeds
Вывести
на дисплей
поддерживаемые
скорости
передачи
данных в
бодах. Они
устанавливаются
во время
компиляции.
-n, --skip-login
Не
запрашивать
имя
пользователя
для входа.
Это может
использоваться
в
сочетании
с
параметром
--login-program для
запуска
нестандартного
процесса
входа в
систему,
например, в
системе BBS.
Обратите
внимание,
что при
использовании
параметра
--skip-login agetty не
получает
никаких
данных от
пользователя,
который
входит в
систему и,
следовательно,
не сможет
определить
четность,
размер
символа и
перевод
строки при
подключении.
По
умолчанию
используется
четность
пробелов,
7-разрядные
символы и
символ
конца
строки ASCII CR (13).
Помните,
что
программа,
которую
запускает
agetty (обычно /bin/login),
запускается
от имени
пользователя
root.
-N, --nonewline
Не
печатать
новую
строку
перед
выводом
/etc/issue.
-o, --login-options login_options
Параметры
и
аргументы,
которые
передаются
в
login(1). Где \u
заменяется
именем
пользователя.
Например:
--login-options '-h darkstar -- \u'
Смотрите
--autologin, --login-program и --remote.
Пожалуйста,
прочтите
раздел SECURITY NOTICE,
прежде чем
использовать
этот
параметр.
-p, --login-pause
Ожидать
ввода
любого
ключа,
прежде чем
перейти к
приглашению
для входа в
систему.
Может быть
объединен
с
параметром
--autologin для
экономии
памяти за
счет
медленного
запуска
оболочек.
-r, --chroot directory
Изменить
корневой
каталог на
указанный
каталог.
-R, --hangup
Вызвать
vhangup(2), чтобы
выполнить
виртуальное
зависание
указанного
терминала.
-s, --keep-baud
Попробывать
сохранить
существующую
скорость
передачи
данных в
бодах.
Скорости
передачи
данных из
командной
строки
используются,
когда agetty
получает
символ BREAK.
Если
указана
другая
скорость
передачи
данных,
исходная
скорость
передачи
данных
также
сохраняется
в конце
списка
требуемых
скоростей
передачи
данных. Это
может быть
использовано
для
возврата к
исходной
скорости
передачи
данных в
бодах
после
неожиданных
сбоев.
-t, --timeout timeout
Завершить
работу,
если в
течение timeout
(в секундах)
не удалось
прочитать
имя
пользователя.
Не
рекомендуется
использовать
этот
параметр с
подключенными
терминальными
линиями.
-U, --detect-case
Включить
поддержку
определения
терминала,
использующего
только
заглавные
буквы. Эта
настройка
распознает
имя
пользователя,
содержащее
только
заглавные
буквы, как
обозначение
терминала,
использующего
только
заглавные
буквы и
включит
некоторые
преобразования
верхнего
регистра в
нижний.
Обратите
внимание,
что при
этом не
поддерживаются
никакие
символы Unicode.
-w, --wait-cr
Ждать
пока
пользователь
или модем
отправят
символ
возврата
каретки
или
перевода
строки,
прежде чем
отправить
файл /etc/issue (или
другие
файлы) и
запрос на
вход в
систему.
Это
полезно
при
использовании
параметра
--init-string.
--nohints
Не
печатать
подсказки
о цифрах,
заглавных
буквах и
блокировках
прокрутки.
--nohostname
По
умолчанию
будет
выведено
имя хоста.
Если этот
параметр
включен, то
имя хоста
никогда
выводиться
не будет.
--long-hostname
По
умолчанию
имя хоста
выводится
только до
первой
точки. Если
этот
параметр
включен, то
выводится
полное имя
хоста с
помощью
gethostname(3P) или
(если не
найдено) с
помощью
getaddrinfo(3).
--erase-chars string
Этот
параметр
определяет
дополнительные
символы,
которые
следует
интерпретировать
как пробел
("игнорировать
предыдущий
символ"),
когда
пользователь
вводит имя
пользователя
для входа.
Дополнительным
символом 'erase'
по
умолчанию
был '#', но
начиная с util-linux
2.23,
дополнительные
символы
стирания
по
умолчанию
не
включены.
--kill-chars string
Этот
параметр
указывает
дополнительные
символы,
которые
следует
интерпретировать
как
уничтожение
("игнорировать
все
предыдущие
символы"),
когда
пользователь
вводит имя
пользователя
для входа.
Дополнительным
символом 'kill'
по
умолчанию
был '@', но
начиная с util-linux
2.23,
дополнительные
символы
уничтожения
по
умолчанию
не
включены.
--chdir directory
Изменить
каталог
перед
входом.
--delay number
Открыть
за
несколько
секунд до
открытия tty.
--nice number
Выполнить
вход с этим
приоритетом.
--reload
Запросить
перезагрузку
всех
запущенных
экземпляров
agetty и
обновить
отображаемые
приглашения,
если
пользователь
еще не
начал
входить в
систему.
После
этого
команда
завершит
работу.
Возможно,
эта
функция не
поддерживается
в системах
без Linux
inotify(7).
-h, --help
Вывести
текст
справки и
завершить
работу.
-V, --version
Вывести
версию и
завершить
работу.
ПРИМЕРЫ¶
В этом
разделе
приведены
примеры
для поля
процесса
записи в
файле
/etc/inittab.Перед
другими
полями
необходимо
указать
соответствующие
значения.
Более
подробную
информацию
смотрите в
inittab(5).
Для
проводной
линии или
консольного
tty:
Для
терминала,
подключенного
напрямую,
без
надлежащей
проводки
для
определения
несущей
(попробуйте
это, если
ваш
терминал
просто
отключен,
вместо
того чтобы
вводить
пароль:
запрос):
/sbin/agetty --local-line 9600 ttyS1 vt100
Для
коммутируемой
линии
старого
образца с
модемом на
9600/2400/1200 бод:
/sbin/agetty --extract-baud --timeout 60 ttyS1
9600,2400,1200
Для
модема Hayes с
фиксированной
скоростью
подключения
к аппарату
115200 бит/с
(пример
строки
инициализации
отключает
эхо-сигналы
модема и
результирующие
коды,
позволяет DCD
модем/компьютер
отслеживать
модем/DCD
модем,
отключение
DTR приводит
к
отключению
и включает
автоответчик
после 1
гудка):
/sbin/agetty --wait-cr --init-string
'ATE0Q1&D2&C1S0=1\015' 115200 ttyS1
УВЕДОМЛЕНИЕ О БЕЗОПАСНОСТИ¶
Если вы
используете
параметры
--login-program и --login-options, то
имейте в
виду, что
злоумышленник
может
попытаться
ввести
логины со
встроенными
параметрами,
которые
затем
будут
переданы
используемой
программе
входа в
систему. agetty
проверяет
наличие
начального
символа "-"
и
гарантирует,
что логин
передается
как один из
параметров
(поэтому
встроенные
пробелы не
создадут
еще один
параметр),
но в
зависимости
от того, как
двоичный
файл входа
анализирует
командную
строку,
этого
может быть
недостаточно.
Убедитесь,
что
используемой
программой
входа в
систему
нельзя
злоупотреблять
таким
образом.
В
некоторых
программах
используется
"--", чтобы
указать,
что
остальная
часть
командной
строки не
должна
интерпретироваться
как
параметры.
Используйте
эту
функцию,
если она
доступна,
передав "--"
до того, как
будет
передано
имя
пользователя
\u.
ФАЙЛЫ ЗАДАЧ¶
Файлом
задачи по
умолчанию
является
файл /etc/issue.
Если файл
существует,
то agetty также
проверяет
наличие
каталога
/etc/issue.d.
Каталог
является
необязательным
расширением
файла
задачи по
умолчанию
и
содержимое
каталога
выводится
после
содержимого
файла /etc/issue.
Если файл
/etc/issue не
существует,
то каталог
игнорируется.
Все файлы
с
расширением
.issue из
каталога
выводятся
в порядке
сортировки
по версиям.
Каталог
может
использоваться
для
обработки
сообщений
сторонних
разработчиков
независимо
от
основного
системного
файла /etc/issue.
Начиная с
версии 2.35,
поддерживаются
дополнительные
расположения
для файла и
каталога
задач. Если
значение
по
умолчанию
/etc/issue не
существует,
то agetty
проверяет
наличие /run/issue
и /run/issue.d, затем
/usr/lib/issue и /usr/lib/issue.d.
Ожидается,
что
каталог /etc
предназначен
для
настройки
конкретного
хоста,
каталог /run -
для
сгенерированного
материала,
а каталог
/usr/lib - для
настройки,
поддерживаемой
дистрибьютором.
Путь по
умолчанию
может быть
изменен
параметром
--issue-file. В этом
случае
указанный
путь
должен
быть
файлом или
каталогом,
а все
расположения
файлов и
каталогов
по
умолчанию
игнорируются.
Функция
создания
файла
задачи
может быть
полностью
отключена
с помощью
параметра
--noissue.
Можно
просмотреть
файл
текущей
задачи,
набрав agetty --show-issue
на текущем
терминале.
Файлы
задачи
могут
содержать
определенные
управляющие
коды для
отображения
имени
системы,
даты,
времени и
т.д. Все
управляющие
коды
состоят из
обратной
косой
черты (\)), за
которой
сразу
следует
один из
символов,
перечисленных
ниже.
4 или 4{interface}
Вставляет
IPv4-адрес
указанного
сетевого
интерфейса
(например: \4{eth0}).
Если
аргумент
interface не
указан,
выбирается
первый
полностью
настроенный
(UP, non-LOCALBACK, RUNNING)
интерфейс.
Если
настроенный
интерфейс
не найден,
выбирается
IP-адрес
компьютераu0438]мя
хоста cqs.
6 or 6{interface}
То же,
что и \4, но
для IPv6.
b
Вставляет
скорость
передачи
текущей
линии
связи, в
бодах.
d
Вставляет
текущую
дату.
e или e{name}
Преобразовать
в
удобочитаемый
текст name
escape-последовательность
и вставить
его
(например:
\e{red}Alert text.\e{reset}). Если
аргумент name
не указан,
то
вставить \ 033.
В
настоящее
время
поддерживаются
следующие
названия: black,
blink, blue, bold, brown, cyan, darkgray, gray, green, halfbright, lightblue,
lightcyan, lightgray, lightgreen, lightmagenta, lightred, magenta, red, reset,
reverse, yellow и white. Все
неизвестные
имена
молча
игнорируются.
s
Вставляет
системное
имя
(наименование
операционной
системы).
Аналогично
'uname -s'. Смотрите
также escape-код
\S.
S or S{VARIABLE}
Вставляет
данные VARIABLE из
/etc/os-release. Если
этот файл
не
существует,
то
обратиться
к /usr/lib/os-release. Если
аргумент VARIABLE
не указан,
то
используется
PRETTY_NAME из файла
или
системное
имя
(смотрите \s).
Этот escape-код
можно
использовать,
чтобы
обеспечить
независимость
распространения
и выпуска
/etc/issue.
Обратите
внимание,
что \S{ANSI_COLOR}
преобразуется
в реальную
escape-последовательность
терминала.
l
Вставляет
название
текущей
линии
связи tty.
m
Вставляет
идентификатор
архитектуры
компьютера.
То же, что и uname
-m.
n
Вставляет
имя узла
компьютера,
также
известное
как имя
хоста.
Аналогично
uname -n.
o
Вставляет
доменное
имя NIS
компьютера.
Аналогично
hostname -d.
O
Вставляет
доменное
имя
компьютера
из DNS.
r
Вставляет
номер
версии
операционной
системы. То
же, что и uname -r.
t
Вставляет
текущее
время.
u
Вставляет
количество
текущих
пользователей,
вошедших в
систему.
U
Вставляет
строку "1
пользователь"
или "<n>users", где
<n> - это
количество
текущих
пользователей,
вошедших в
систему.
v
Вставляет
версию
операционной
системы, то
есть дату
сборки и
тому
подобное.
Пример. В
моей
системе
используется
следующий
файл /etc/issue:
This is \n.\o (\s \m \r) \t
displays as:
This is thingol.orcan.dk (Linux i386 1.1.9) 18:29:30
ФАЙЛЫ¶
/var/run/utmp
файл
состояния
системы.
/etc/issue
выводится
перед
запросом
на вход в
систему.
/etc/os-release /usr/lib/os-release
идентификационные
данные
операционной
системы.
/dev/console
сообщения
о
неполадках
(если не
используется
параметр
syslog(3)).
/etc/inittab
init(8) -
конфигурационный
файл для
демона init в
стиле SysV.
ОШИБКИ¶
Функция
определения
скорости
передачи
данных в
бодах
(параметр
--extract-baud)
требует,
чтобы agetty
была
завершена
достаточно
быстро
после
завершения
телефонного
вызова (в
течение 30 мс
для
модемов,
поддерживающих
скорость
передачи
данных 2400
бод). Для
повышения
надежности
всегда
используйте
параметр
--extract-baud в
сочетании
с
аргументом
командной
строки,
указывающим
скорость
передачи
данных с
различными
бодами,
чтобы была
включена
обработка
прерываний.
Текст в
файле /etc/issue
(или другом)
и
приглашение
для входа в
систему
всегда
выводятся
с
использованием
7-разрядных
символов и
четности
пробелов.
Функция
определения
скорости
передачи
данных в
бодах
(параметр
--extract-baud)
требует,
чтобы
модем
отправлял
сообщение
о
состоянии
after
разъединения
линии
связи DCD.
ДИАГНОСТИКА¶
В
зависимости
от того, как
была
настроена
программа,
все
диагностические
данные
записываются
на
консольное
устройство
или
передаются
через
средство
syslog(3)).
Сообщения
об ошибках
выдаются,
если в
аргументе
port не
указано
оконечное
устройство;
если для
текущего
процесса
нет записи
utmp (только
для System V); и так
далее.
АВТОРЫ¶
Werner Fink <werner@suse.de>, Karel Zak
<kzak@redhat.com>
Оригинальная
инструкция
для
последовательных
терминалов
была
разработана
W.Z. Venema <wietse@wzv.win.tue.nl> и
портирована
на Linux с
помощью Peter Orbaek
<poe@daimi.aau.dk>.
ПЕРЕВОД¶
Русский
перевод
этой
страницы
руководства
разработал(и)
Aleksandr Felda <isk8da@gmail.com>
Этот
перевод
является
свободной
программной
документацией;
он
распространяется
на
условиях
общедоступной
лицензии GNU (GNU
General Public License - GPL,
https://www.gnu.org/licenses/gpl-3.0.html
версии 3 или
более
поздней) в
отношении
авторского
права, но
БЕЗ
КАКИХ-ЛИБО
ГАРАНТИЙ.
Если вы
обнаружите
какие-либо
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
сообщите
об этом
разработчику(ам)
по его(их)
адресу(ам)
электронной
почты или
по адресу
списка
рассылки
русских
переводчиков.