Como posso me autenticar no desktop com o systemd?

16

Como eu configuro o systemd para logar-me automaticamente no meu ambiente de desktop, preferencialmente sem usar o gerenciador de login? Estou usando o Arch.

    
por fhucho 05.07.2012 / 12:03

2 respostas

16

Isso é descrito no Wiki do Arch :

Create a new service file similar to [email protected] by copying it to /etc/systemd/system/

cp /usr/lib/systemd/system/[email protected] /etc/systemd/system/[email protected]

Isso basicamente copia o [email protected] já existente para um novo arquivo [email protected] , que pode ser modificado livremente. É copiado para /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 lá.

Você terá então que ligar symlink [email protected] ao serviço getty para o tty no qual você deseja se autenticar, por exemplo, para tty1:

ln -s /etc/systemd/system/[email protected] /etc/systemd/system/getty.target.wants/[email protected]

Até agora, isso ainda é o mesmo que o arquivo [email protected] usual, mas a parte mais importante é modificar o [email protected] para que você efetue o login automaticamente. Para fazer isso, você só precisa alterar a linha ExecStart para ler

ExecStart=-/sbin/agetty -a USERNAME %I 38400

A diferença entre a linha ExecStart em [email protected] e [email protected] é apenas a -a USERNAME que informa à agetty para registrar 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 será iniciado corretamente se você já estiver logado em tty1, a maneira mais segura é provavelmente apenas reiniciar em vez de iniciar o serviço).

Se você quiser iniciar o X automaticamente, insira o snippet a seguir no seu ~/.bash_profile (tirado do wiki novamente):

if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then
    exec startx
fi

Você terá que modificar seu ~/.xinitrc para iniciar seu ambiente de desktop, como fazer isso depende do DE e é provavelmente descrito no wiki do Arch também.

    
por 05.07.2012 / 12:52
3

Modifique diretamente o arquivo /etc/systemd/system/getty.target.wants/[email protected] (que é um link simbólico para /lib/systemd/system/getty@service ):

Anexe o -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 inicia o login para USERNAME , mas ainda solicita a senha.

Após a reinicialização, você fará o login automaticamente.

P.s. Altere o nome do arquivo [email protected] para o tty no qual você deseja fazer login.

    
por 14.06.2016 / 09:55