Login automático no Linux

7

Qual é a maneira mais fácil e elegante de fazer login em uma sessão do fluxbox automaticamente (sem nenhuma ação, sem pressionamento de tecla ou qualquer coisa) na inicialização do sistema como um determinado usuário. [Edit 2] Nem mesmo um login de shell deve ser necessário para o usuário, sempre o usuário predefinido deve estar logado graficamente. [/ Editar 2]

Existem algumas configurações onde isso é bom.

(Por favor, coloque comentários sobre se isso deve ser discutido ou melhor mantido em segredo para a outra questão: link )

[EDIT 1]

Como eu poderia bloquear o fluxbox imediatamente depois (usando o xtrlock), mas ao mesmo tempo continuo iniciando meus aplicativos favoritos.

O resultado seria: eu ligo a caixa, vou tomar café da manhã, quando eu volto eu destravo a caixa com minha senha (aceita pelo xtrlock) e tudo está no lugar.

É impossível ou como isso pode ser feito para quebrar este esquema em "edit 1", imagine que alguém pressione ctrl-c no momento certo quando o fluxbox está chegando ou o que for possível. Ou essa pessoa pode usar o mouse para clicar em algum lugar em um aplicativo que comece antes que o xtrlock o impeça.

(Estou ciente do fato de que alguém pode ver o conteúdo da tela, mas isso seria ok para mim.)

[/ EDIT 1]

    
por Community 14.04.2009 / 10:53

7 respostas

6

Suponho que você use o gerenciador de login do GDM. Em seu arquivo de configuração /etc/gdm/gdm.conf enable autologin feature:

AutomaticLoginEnable=true
AutomaticLogin=karlthorwald

Você também pode definir um tempo limite para logins automáticos. Reinicie gdm e voilà!

    
por 14.04.2009 / 11:17
4

Você também pode usar o rungetty. Ele é projetado especificamente como um substituto do getty que "executa" algo. Então, você pode configurá-lo para startx, executar o fluxbox e quais não.

    
por 14.04.2009 / 11:29
3

No gentoo você tem o arquivo /etc/conf.d/local.start para isto. Seu distribuição provavelmente tem um arquivo semelhante, onde você pode configurar comandos para ser executado na inicialização.

Você adiciona esta linha:

su -c "startx" $user &

No diretório inicial $ user você pode configurar o .xinitrc para executar o fluxbox adicionando isso na última linha:

exec startfluxbox

Se você precisar executar mais programas, coloque-os no .xinitrc. Observe que o exec startfluxbox deve ser executado como o último.

    
por 14.04.2009 / 11:00
3

Em debian , tenho um script (vamos chamá-lo de autologin.sh ) que inicia o X11:

su - kit -c "startx &"

Que por sua vez é instalado via update-rc.d :

sudo update-rc.d autologin.sh defaults 99 1

Eu também desabilito todos os gerenciadores de login como {k,g,x}dm . Então, em ~/.xinitrc eu teria:

$command 1 &
$command 2 &
x-window-manager
    
por 14.04.2009 / 11:06
3

Ok, há inúmeras respostas para o login automático - é um recurso do kdm & gdm, ou pode ser feito iniciando x explicitamente em vez de usar um gerenciador de exibição, etc.

Quanto à parte de bloqueio, há um arquivo que você pode jogar:

/home/<user>/.fluxbox/startup

No início do arquivo, adicione as seguintes linhas:

/usr/bin/xtrlock &
/usr/bin/sleep 5

xtrlock, faz o que você quer com o bloqueio de sessão. O e comercial significa fazê-lo em segundo plano - continue em frente com o próximo comando, o sono ajuda a garantir que a tela seja bloqueada antes que qualquer outro aplicativo seja iniciado.

Observe que a última linha deste arquivo de inicialização é a linha que realmente executa o fluxbox, portanto, isso é executado antes que qualquer aplicativo seja iniciado.

Em termos de segurança, eu não acho que você pode pressionar ctrl-c para contornar isso, mas a segurança é obviamente menos apertada do que no cenário de login completo.

    
por 14.04.2009 / 12:16
2

Da sua pergunta deduzo que você deseja iniciar uma sessão XWindow automaticamente depois que alguém fizer um login no console.

Uma solução que funciona para qualquer distribuição é usar o .profile no diretório inicial do usuário (veja o manual de referência do bash para detalhes). Tudo o que você tem que colocar nele são os comandos que você quer que sejam executados automaticamente pelo usuário no login. No seu caso, deve ser algo assim:

#Start the XWindow session
startx
#Exit the shell once the XWIndow session is done
exit

Em uma nota lateral, você pode sempre olhar Há sempre GDM (geralmente parte do pacote gnome), KDM (geralmente parte de um pacote KDE) ou XDM que pode iniciar um X automaticamente no momento da inicialização usando um script rc e, em seguida, levá-lo ao seu gerenciador de janelas favorito, uma vez que você tenha se logado. GDM e KDM ambos oferecem uma maneira de entrar automaticamente um usuário, se é isso que você está procurando. O GDM, o KDM e o XDM são comparáveis à janela de login do Mac OS X ou à janela de login do Microsoft Windows.

    
por 14.04.2009 / 11:25
1

Use o arquivo /etc/inittab . Este arquivo gera shell de login e talvez um gerenciador de exibição (como [GK] DM) quando o computador entra no nível de execução 5 (normalmente).

Uma linha de shell de login padrão se parece com isso:

c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux

No entanto, com agetty, você pode especificar seu próprio programa de login. Então, substitua por algo assim

c1:2345:respawn:/sbin/agetty -n -l /usr/local/sbin/auto_login 38400 vc/1 linux

E depois auto_login.c

#include <unistd.h>
int main() {
       execlp( "login", "login", "-f", "your_user_name_here", 0);
}

Agora use seu script de inicialização de shells para iniciar o X como quiser.

    
por 14.04.2009 / 11:26