Por dentro do login no Linux
Publicado por Daniel Carraro Tomasini em Junho 10, 2008
Quando executamos o login no linux, várias medidas de segurança são executadas antes de permitir o acesso. Estas medidas podem variar de distribuição para distribuição, mas geralmente são as mesmas.
Login: segundo a documentação Linux é um programa usado para estabelecer uma nova sessão com o sistema. Este programa executa vários checagens antes de permitir acesso mostrarei eles passo a passo.
Primeiro, o login irá verificar se existe o arquivo /etc/nologin este arquivo sinaliza que somente o usuário root pode logar no sistema. Este arquivo é criado quando desligamos a máquina com o comando shutdown. Então quando existir o arquivo /etc/nologin o login irá falhar e o conteúdo do arquivo será mostrado no prompt, somente será aceito que o root faça o login. Exemplo:
- vim /etc/nologin
- Sistema em manutenção tente a partir das 17:00hs
- Login localhost: marlon
- Sistema em manutenção tente a partir das 17:00hs
- Senha:
- Login incorrect
- Login localhost:root
- Sistema em manutenção tente a partir das 17:00hs
- Senha:
- localhost ~ #
Segundo, verificar a existência de alguma restrição nos arquivos /etc/usertty e /etc/securetty estes arquivos definem em qual TTY(terminal), pode ser feito o login por usuário ou root respectivamente.
Exemplo:
- vim /etc/securetty
- console
- tty0
- tty1
- tty2
- tty3
- :q
Caso seja necessário proibir que o root faça login em algum dos terminais listados no arquivo, somente coloque # na frente do terminal, comentando a linha.
Após a verificação do password e restrições mostradas acima o login armazena no arquivo /var/log/lastlog o horário que foi executado o login, criando uma entrada no arquivo /var/run/utmp e indicando que o login foi executado com sucesso.
Terceiro, verifica a existência do arquivo .hushlogin dentro do diretório /home do usuário. Caso exista o login será silencioso, não haverá nenhuma mensagem; caso contrário uma seqüência de eventos ocorrerá. As informações serão mostradas ao usuário no terminal, por exemplo informações sobre direitos autorais, seguidas pela mensagem do dia geralmente armazenada no arquivo /etc/motd e por fim a data do último login e sua origem. Mas se você não quiser receber este ruído simplesmente execute o seguinte comando:
touch ~/.hushlogin
Finalmente, se todas as checagem passaram e as restrições foram executadas,o login inicia um shell. Este depende das informações contidas no arquivo (/etc/passwd,NIS,LDAP). O shell possui a opção de ajuste para ser não interativo . Este diretiva geralmente é configurada para usuário de email e ftp, com a opção /bin/true ou /bin/false, que informa se o usuário poderá ou não ter acesso ao shell.
Fonte: petryx.blogrs.com.br