getty (Português)
O getty é o nome genérico de um programa que gerencia uma linha de terminal e seu terminal conectado. Seu objetivo é proteger o sistema de acessos não autorizados. Geralmente, cada processo de getty é iniciado por systemd e gerencia uma única linha de terminal.
Instalação
O agetty é o getty padrão no Arch Linux, como parte do pacote util-linux. Ele modifica as configurações de TTY enquanto espera por um login para que as novas linhas não sejam convertidas em CR-LFs. Isso tende a causar um "efeito escada" para mensagens impressas no console. Agetty gerencia consoles virtuais e seis desses consoles virtuais são fornecidos por padrão no Arch Linux. Eles geralmente são acessíveis pressionando Ctrl+Alt+F1
até Ctrl+Alt+F6
.
As alternativas incluem:
- mingetty — Um getty mínimo que permite logins automáticos.
- fbgetty — Um console getty como o mingetty, que suporta framebuffers.
- mgetty — Um programa versátil para lidar com todos os aspectos de um modem no Unix.
Adicionar outros consoles virtuais
Abra o arquivo /etc/systemd/logind.conf
e defina a opção NAutoVTs=6 para o número de terminais virtuais que você deseja na inicialização.
Se você deseja iniciar um temporariamente, você pode iniciar um serviço getty no TTY desejado digitando:
$ systemctl start getty@ttyN.service
Login automático no console virtual
A configuração depende do editando units fornecidas para substituir os parâmetros padrão passados para agetty.
A configuração difere para consoles virtuais e seriais. Na maioria dos casos, você deseja configurar o login automático em um console virtual, (cujo nome do dispositivo é ttyN
, Onde N
é o número). A configuração do login automático para consoles seriais será um pouco diferente. Os nomes dos dispositivos dos consoles seriais parecem ttySN
, onde N
é o número.
Console virtual
Edite manualmente, criando o seguinte snippet drop-in ou executando systemctl edit getty@tty1
e colando seu conteúdo:
/etc/systemd/system/getty@tty1.service.d/override.conf
[Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
Type=idle
encontrado no padrão getty@.service
irá atrasar a inicialização do serviço até que todos os trabalhos (solicitações de mudança de estado para unidades) sejam concluídos, a fim de evitar poluir o prompt de login com mensagens de inicialização. Quando o X, pode ser útil começar getty@tty1.service
imediatamente adicionando Type=simple
no drop-in-snippet. Tanto o sistema init como o startx pode ser silêncioso para evitar a intercalação de suas mensagens durante a inicialização.Se você não deseja login totalmente automático, mas também não deseja digitar seu nome de usuário, você pode substituir --autologin username
com --skip-login --login-options username
.
Se você quiser usar um tty outro que não seja tty1, veja systemd FAQ (EN).
Console serial
Crie o seguinte arquivo (e diretórios principais):
/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf
[Service] ExecStart= ExecStart=-/usr/bin/agetty --autologin username -s %I 115200,38400,9600 vt102
Console Nspawn
Para configurar o login automático para systemd-nspawn (EN) container, substituir console-getty.service
:
/etc/systemd/system/console-getty.service.d/override.conf
[Service] ExecStart= ExecStart=-/sbin/agetty --noclear --autologin username --keep-baud console 115200,38400,9600 $TERM
Se machinectl login my-container
método é usado para acessar o contêiner, também adicionar --autologin username
ao container-getty@.service
modelo que gerencia pts/[0-9]
:
/etc/systemd/system/container-getty@.service.d/override.conf
[Service] ExecStart= ExecStart=-/sbin/agetty --noclear --autologin username --keep-baud pts/%I 115200,38400,9600 $TERM
Solicita apenas a senha de um usuário padrão no login do console virtual
Getty pode ser usado para fazer o login a partir de um console virtual com um usuário padrão, digitando a senha, mas sem a necessidade de inserir o nome de usuário. Por exemplo, para solicitar a senha para username
em tty1
:
/etc/systemd/system/getty@tty1.service.d/override.conf
[Service] ExecStart= ExecStart=-/sbin/agetty -n -o username %I
e depois
# systemctl enable getty@tty1
Mantenha as mensagens de inicialização em tty1
Por padrão, Arch tem o getty@tty1
serviço habilitado. O arquivo de serviço já passa --noclear
, que impede o agetty de limpar a tela. Contudo o systemd limpa a tela antes de iniciá-lo. Para desativar esse comportamento, crie /etc/systemd/system/getty@tty1.service.d/noclear.conf
:
/etc/systemd/system/getty@tty1.service.d/noclear.conf
[Service] TTYVTDisallocate=no
Isso substitui apenas TTYVTDisallocate
para agetty em TTY1, e deixa o arquivo de serviço global /usr/lib/systemd/system/getty@.service
intocado. Veja Editando units fornecidas.
- Certifique-se de remover o
quiet
do kernel parameters. - O início tardio do KMS pode fazer com que as primeiras mensagens de inicialização sejam apagadas. Veja KMS#Early KMS start or KMS#Disabling modesetting.