Настройте tty для запроса пароля для конкретного пользователя

Если я переключаюсь на tty, скажем tty3, он запрашивает у меня имя пользователя и затем соответствующий пароль.

Как я могу добиться, чтобы (только на tty3) он запрашивал у меня только пароль для предварительно определенного имени пользователя (скажем, myuser ) и упоминал имя пользователя, например password for myuser ? Поэтому мне не нужно вводить имя пользователя, а только пароль на этом tty.

Я использую Ubuntu 18.04, который использует systemd.

Вам нужно будет добавить, какой дистрибутив вы используете, потому что разные дистрибутивы, вероятно, запускают getty по-разному.

Для sysvinit это запрограммировано в /etc/inittab , где вы можете найти следующую строку:

 3:23:respawn:/sbin/getty 38400 tty3 

Вы бы изменили эту строку примерно так:

 3:23:respawn:/sbin/getty -n -o ferdinand 38400 tty3 

Чтобы getty запустил /bin/login -- ferdinand , то есть заполнил его именем пользователя «ferdinand».

Как описано в man getty , опция -n говорит ему не запрашивать имя пользователя, а опция -o ferdinand говорит, что он добавляет «ferdinand» в свою командную строку входа в систему.

Я думаю, что опции работают так же в других дистрибутивах, но способ запуска getty для tty3 может отличаться и, в частности, не использовать /etc/inittab .

Системный эквивалент ответа Ральфа Ренквиста

 sudo EDITOR=/usr/bin/vi systemctl edit getty@tty3 

(или ваш любимый редактор). Это дает вам временный файл, в котором вы вводите строки:

  [Service] ExecStart= ExecStart=-/sbin/agetty -n -o ferdinand %I 

и выйдите из редактора. Он создаст файл /etc/systemd/system/getty@tty3.service.d/override.conf . Обратите внимание, что вам нужна первая ExecStart= чтобы сбросить список команд для выполнения обратно на пустой Затем вы можете включить и запустить модуль как обычно:

 sudo systemctl enable getty@tty3 sudo systemctl start getty@tty3 

Первый создает ссылку в /etc/systemd/system/getty.target.wants/ на будущее. Смотрите archlinux .