getty (Русский)
getty — это общее название программы, которая управляет терминальной линией и подключенным к ней терминалом. Её цель — защитить систему от несанкционированного доступа. Как правило, каждый процесс getty запускается через systemd и управляет одной терминальной линией.
Установка
По умолчанию в Arch Linux используется agetty, который является частью пакета util-linux.
Существуют альтернативы:
- mingetty — Минимальный getty, позволяющий автоматически входить в систему.
- fbgetty — Консольный getty, подобный mingetty, который поддерживает фреймбуфер.
- http://projects.meuh.org/fbgetty/[устаревшая ссылка 2022-09-18 ⓘ] || fbgettyAUR[ссылка недействительна: package not found]
- mgetty — Универсальная программа для работы со всеми аспектами модема под Unix.
Добавление дополнительных виртуальных консолей
В файле /etc/systemd/logind.conf
измените опцию NAutoVTs=6 на желаемое число виртуальных консолей, которые будут доступны после загрузки системы.
При необходимости можно временно запустить новую виртуальную консоль путём запуска службы getty@ttyN.service
напрямую.
Автоматический вход в виртуальную консоль
Настройка ведётся через drop-in файлы systemd для переопределения параметров по умолчанию, передаваемых в agetty.
Настройки для виртуальных и последовательных (serial) консолей отличаются. Скорее всего вам нужно настроить автоматический вход в систему на виртуальной консоли (имя устройства которой ttyN
, где N
— число). Конфигурация автоматического входа для последовательных консолей будет немного отличаться. Имена устройств последовательных консолей выглядят как ttySN
, где N
— число.
Виртуальная консоль
Создайте 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
- Удалите
quiet
из параметров ядра. - Поздний запуск KMS может привести к стиранию первых нескольких сообщений. Смотрите Kernel mode setting (Русский)#Ранний запуск KMS или Kernel mode setting (Русский)#Отключение modesetting.