getty (Русский) - ArchWiki

Jump to content
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

Примечание:

- Удалите `quiet` из параметров ядра.
- Поздний запуск KMS может привести к стиранию первых нескольких сообщений. Смотрите Kernel mode setting (Русский)#Ранний запуск KMS или Kernel mode setting (Русский)#Отключение modesetting.

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

- systemd (Русский)#Изменение цели загрузки по умолчанию
- The TTY demystified
- tty — Википедия

Categories:

- Boot process (Русский)
- Linux console (Русский)

Hidden category:

- Pages with dead links