Scroll to navigation

AGETTY(8) Системное администрирование AGETTY(8)

ИМЯ

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 9600 ttyS1

Для терминала, подключенного напрямую, без надлежащей проводки для определения несущей (попробуйте это, если ваш терминал просто отключен, вместо того чтобы вводить пароль: запрос):

/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>.

ИНФОРМАЦИЯ ОБ ОШИБКАХ

Для получения отчетов об ошибках используйте средство отслеживания проблем по адресу <https://github.com/util-linux/util-linux/issues>.

ДОСТУПНОСТЬ

Команда agetty является частью пакета util-linux, который можно загрузить с Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Aleksandr Felda <isk8da@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.

4 августа 2022 г. util-linux 2.38.1