getty (Русский)

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи getty. Дата последней синхронизации: 14 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

getty — это общее название программы, которая управляет терминальной линией и подключенным к ней терминалом. Её цель — защитить систему от несанкционированного доступа. Как правило, каждый процесс getty запускается через systemd и управляет одной терминальной линией.

Установка

По умолчанию в Arch Linux используется agetty, который является частью пакета util-linux.

Существуют альтернативы:

  • mingetty — Минимальный getty, позволяющий автоматически входить в систему.
mingettyAUR || mingettyAUR
  • fbgetty — Консольный getty, подобный mingetty, который поддерживает фреймбуфер.
http://projects.meuh.org/fbgetty/[устаревшая ссылка 2022-09-18] || fbgettyAUR
  • mgetty — Универсальная программа для работы со всеми аспектами модема под Unix.
http://mgetty.greenie.net/ || mgettyAUR

Добавление дополнительных виртуальных консолей

В файле /etc/systemd/logind.conf измените опцию NAutoVTs=6 на желаемое число виртуальных консолей, которые будут доступны после загрузки системы.

При необходимости можно временно запустить новую виртуальную консоль путём запуска службы getty@ttyN.service напрямую.

Автоматический вход в виртуальную консоль

Настройка ведётся через drop-in файлы systemd для переопределения параметров по умолчанию, передаваемых в agetty.

Настройки для виртуальных и последовательных (serial) консолей отличаются. Скорее всего вам нужно настроить автоматический вход в систему на виртуальной консоли (имя устройства которой ttyN, где N — число). Конфигурация автоматического входа для последовательных консолей будет немного отличаться. Имена устройств последовательных консолей выглядят как ttySN, где N — число.

Совет: Подумайте об использовании функции автовхода в greetd. Он не будет выполнять автологин во второй раз при выходе из начальной сессии, а вместо этого покажет экран входа в систему.

Виртуальная консоль

Создайте drop-in файл для getty@tty1.service со следующим содержимым:

/etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --autologin пользователь - $TERM
Совет:
  • Опция Type=idle, присутствующая в стандартном getty@.service, задержит запуск службы до тех пор, пока не будут выполнены все задания (запросы на изменение состояния юнитов), чтобы не засорять приглашение к входу в систему загрузочными сообщениями. При автоматическом запуске X может оказаться полезным сразу запустить getty@tty1.service, добавив Type=simple в drop-in файл. И система инициализации, и startx могут быть заглушены, чтобы избежать перемешивания их сообщений во время загрузки.
  • Приведённый выше фрагмент приведет к тому, что тип сеанса loginctl будет установлен на tty. При желании (например, при автоматическом запуске X можно вручную установить тип сеанса wayland или x11 путём добавления Environment=XDG_SESSION_TYPE=x11 или Environment=XDG_SESSION_TYPE=wayland в этот файл.

Если вам не нужен автовход, но вы не хотите вводить своё имя пользователя, смотрите #Запрос только пароля для пользователя по умолчанию.

Если вам нужен tty отличный от tty1, смотрите systemd FAQ.

Последовательная консоль

Создайте следующий drop-in файл:

/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --keep-baud --autologin пользователь 115200,57600,38400,9600 - $TERM

Консоль nspawn

Для настройки автовхода в контейнере systemd-nspawn создайте следующий drop-in файл:

/etc/systemd/system/console-getty.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --keep-baud --autologin пользователь - 115200,38400,9600 $TERM

Если для доступа к контейнеру используется метод machinectl login мой-контейнер, также настройте шаблон container-getty@.service, который управляет pts/[0-9]:

/etc/systemd/system/container-getty@.service.d/autologin.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -f -- \\u' --noclear --keep-baud --autologin пользователь - 115200,38400,9600 $TERM

Запрос только пароля для пользователя по умолчанию

Getty можно использовать для входа в систему с виртуальной консоли с пользователем по умолчанию, вводя пароль, но без необходимости вводить имя пользователя. Например, чтобы запросить пароль пользователя пользователь на tty1:

/etc/systemd/system/getty@tty1.service.d/skip-username.conf
[Service]
ExecStart=
ExecStart=-/sbin/agetty -o '-p -- пользователь' --noclear --skip-login - $TERM

Затем включите getty@tty1.

Отображение загрузочных сообщений на tty1

По умолчанию в Arch включена служба getty@tty1. В файле службы уже прописан параметр --noclear, который не позволяет agetty очищать экран. Однако systemd очищает экран перед его запуском. Чтобы отключить это поведение, создайте следующий drop-in файл:

/etc/systemd/system/getty@tty1.service.d/noclear.conf
[Service]
TTYVTDisallocate=no
Примечание:

Смотрите также