Como posso configurar o systemd para fazer login automaticamente no meu ambiente de desktop, de preferência sem usar um gerenciador de login? Estou usando Arch Linux.
Responder1
Isto está descrito noArchWiki:
Crie um novo arquivo de serviço semelhante a
[email protected]
copiando-o para/etc/systemd/system/
cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]
Basicamente, isso copia o já existente [email protected]
para um novo arquivo [email protected]
que pode ser modificado livremente. Ele é copiado /etc/systemd/system
porque é onde os arquivos de unidade específicos do site são armazenados. /usr/lib/systemd/system
contém arquivos unitários fornecidos por pacotes, portanto você não deve alterar nada neles.
Você terá então que criar um link simbólico [email protected]
para o serviço getty do tty no qual deseja fazer login automático, por exemplo, para tty1:
ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]
Até agora, este ainda é o mesmo [email protected]
arquivo normal, mas a parte mais importante é modificá-lo [email protected]
para fazer login automaticamente. Para fazer isso, você só precisa alterar a ExecStart
linha para ler
ExecStart=-/sbin/agetty -a USERNAME %I 38400
A diferença entre a ExecStart
linha in [email protected]
e [email protected]
é apenas a -a USERNAME
que diz ao agetty para logar o usuário com o nome de usuário USERNAME automaticamente.
Agora você só precisa dizer ao systemd para recarregar seus arquivos daemon e iniciar o serviço:
systemctl daemon-reload
systemctl start [email protected]
(Não tenho certeza se o serviço iniciará corretamente se você já estiver logado no tty1, a maneira mais segura provavelmente é apenas reiniciar em vez de iniciar o serviço).
Se você quiser iniciar o X automaticamente, insira o seguinte trecho em seu ~/.bash_profile
(retirado dea wikide novo):
if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
exec startx
fi
Você terá que modificar ~/.xinitrc
para iniciar seu ambiente de desktop, como fazer isso depende do DE e provavelmente também está descrito no ArchWiki.
Responder2
OMI, oArco Wikiatualmente recomenda uma solução muito mais simples:
Execute o helper ( systemctl edit getty@tty1
) ou faça o que fiz manualmente:
mkdir -p /etc/systemd/system/[email protected]/
touch /etc/systemd/system/[email protected]/override.conf
O texto que você deseja inserir (por qualquer método) é (certifique-se de mudarnome de usuárioadequadamente):
[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin username --noclear %I $TERM
OBSERVAÇÃO: A linha vazia é importante! A linha vazia primeiro limpará a entrada ExecStart, enquanto a próxima linha apresentará um novo comando exec.
Agora, reinicie ( shutdown -r 0
) e algo semelhante ... login: username (automatic login)
acontecerá onde ele bloqueou anteriormente a espera pela entrada de nome de usuário/senha
Depois de reinicializado e conectado automaticamente, se você for como eu e quiser fazer SSH neste sistema agora, provavelmente precisará executar:
systemctl enable sshd.service
O que criará o link simbólico (por exemplo ln -s '/usr/lib/systemd/system/sshd.service' '/etc/systemd/system/multi-user.target.wants/sshd.service'
)
Responder3
Modifique diretamente o arquivo (que é um link simbólico para ):/etc/systemd/system/getty.target.wants/[email protected]
/lib/systemd/system/getty@service
Anexe -a/--autologin USERNAME
à linha:
ExecStart=-/sbin/agetty --noclear %I $TERM
Por isso:
ExecStart=-/sbin/agetty -a USERNAME %I $TERM
Você também pode remover -o '-p -- \\u'
(como presente na instalação atual do Arch), pois isso iniciaria o login, USERNAME
mas ainda solicitaria a senha.
Após a reinicialização, você fará login automaticamente.
PsAltere o nome do arquivo [email protected]
para o qual tty
você deseja fazer login.
Responder4
Você também pode usar getty
o comando (get tty), que permite fazer login automaticamente no usuário especificado, o argumento do getty
pode ser --autologin
ou -a
, estou executando o Linux Debian Ubuntu, então não sei se este comando está disponível em outras distros.
getty -a <user>