você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

RedHat Linux - Login Sem Senhas

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 29 de Janeiro de 2003

É cada vez mais comum o uso de sistemas GNU/Linux para uso doméstico, em equipamentos desconectados da rede e com um único usuário.

Nestas condições, muitos preferem evitar o trabalho de ter que digitar uma identificação e uma senha.

Existem diversas formas de se fazer isto, porém uma maneira bem interessante está descrita em http://www.linuxgazette.com/issue72/chung.html, em um artigo da Linux Gazette.

O procedimento é bem simples. Basta compilar um pequeno programa e colocá-lo no arquivo /etc/inittab.

autologin.c

int main() {
   execlp( "login", "login", "-f", "queiroz", 0);
}

Compile este programa:

# gcc -o autologin autologin.c
# cp autologin /usr/local/sbin

No caso, este programa determina que o usuário que terá o login feito automaticamente será queiroz.

Resta agora modificar o arquivo /etc/inittab.

Neste arquivo procure pelas linhas:

#Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

Vamos agora alterar as definições da tty1 para invocar o programa autologin:

#Run gettys in standard runlevels
#1:2345:respawn:/sbin/mingetty tty1
1:2345:respawn:/sbin/agetty -n -l /usr/local/sbin/autologin 38400 tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

Estamos modificando apenas a entrada para tty1. As demais continuam inalteradas. O programa mingetty também é substituido visto que não suporta praticamente nenhuma alteração. O programa agetty (Alternative Linux Getty), suporta as diretivas -l (programa a ser invocado em substituição ao programa /bin/login) e -n (não apresentar o prompt de login na tela).

O arquivo .bash_profile do usuário que terá o login feito automaticamente (queiroz) deverá conter as seguintes linhas para ativação do ambiente gráfico:

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

A última providência a ser tomada é desabilitar o gerenciador gráfico de login (xdm ou gdm). Para isto, também no arquivo /etc/inittab, comente as seguintes linhas:

# Run xdm in runlevel 5
# xdm is now a separate service
#x:5:respawn:/etc/X11/prefdm -nodaemon

Só para garantir, na linha

id:5:initdefault:

mude para

id:3:initdefault:

O runlevel (nível de execução) 3 é não gráfico.

Para saber mais sobre níveis de execução leia o artigo Níveis de Execução, que se encontra em http://www.dicas-l.com.br/artigos/linux/linux17-1.shtml

Todos estes comandos foram executados em um sistema RedHat Linux versão 8.0 mas devem funcionar, com ligeiras modificações, em qualquer sistema GNU/Linux.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida