Login automaticamente na linha de comando do Debian 9.2.1

1

Acabei de instalar o Debian 9.2.1 em um laptop antigo como um servidor barato. O computador não é fisicamente acessado por ninguém além de mim, então gostaria de fazer o login automaticamente na inicialização para que, se eu tiver que usar o laptop em vez de SSH, não precise se preocupar em fazer login. Não tenho ambientes gráficos instalado, então nenhum desses métodos funcionaria, e eu tentei várias soluções, como No entanto, tudo o que fez foi resultar em nenhum prompt de login sendo dado ... Então eu reinstalei o Debian. O que posso fazer para fazer login automaticamente sem um ambiente gráfico? Obrigado!

    
por Josh 01.11.2017 / 06:14

2 respostas

6

Edite seu /etc/systemd/logind.conf , altere #NAutoVTs=6 para NAutoVTs=1

Crie um /etc/systemd/system/[email protected]/override.conf até

systemctl edit getty@tty1

Após as seguintes linhas

[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux

ative o [email protected] e reinicie

systemctl enable [email protected]
reboot

Arch linux docs: getty

    
por 01.11.2017 / 10:26
0

Eu gostaria de acrescentar uma resposta um pouco mais completa, especialmente considerando o comentário sobre a quebra do sistema dele no @Keelan.

Primeiro, se você deseja ter apenas um TTY que esteja executando o programa e não conseguir fazer login em outro tty, ENTÃO edite seu /etc/systemd/logind.conf e altere #NAutoVTs=6 para NAutoVTs=1 . Isso impedirá que você faça login no terminal!

Em seguida, crie um diretório e um arquivo override.conf :

mkdir -p /etc/systemd/system/[email protected]
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux" >> /etc/systemd/system/[email protected]/override.conf

Não reinicialize. Em vez de reinicializar, conforme descrito na outra resposta, faça o login em outro TTY e, em seguida, execute os seguintes comandos para testar as coisas:

systemctl daemon-reload
systemctl restart [email protected]

Se tudo correr bem, reinicie.

Mas e se eu quiser executar um programa em vez de autologin? Então você usaria o seguinte:

mkdir -p /etc/systemd/system/[email protected]
echo "[Service]" > /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=" >> /etc/systemd/system/[email protected]/override.conf
echo "ExecStart=-/path/program -arg1 -arg2" >> /etc/systemd/system/[email protected]/override.conf
echo "StandardInput=tty"  >> /etc/systemd/system/[email protected]/override.conf
echo "StandardOutput=tty"  >> /etc/systemd/system/[email protected]/override.conf

Agora, lembre-se de que isso será executado sem um bashrc . Isso significa que se você usar algo como screen , você não obterá todos os seus aliases habituais / etc. Para corrigir isso, use o login automático padrão acima, mas adicione isso ao seu .bashrc :

[ 'tty' == /dev/tty1 ] && /path/program -arg1 -arg2

Isso significa que o programa só será executado em tty1 , mas fornecerá uma concha completa por baixo.

Espero que isso ajude!

    
por 14.12.2018 / 16:41