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

Criando mais um nivel de proteção para acessar a conta do root com o comando trap

Colaboração: Altemir Braz Dantas Junior

Data de Publicação: 08 de fevereiro de 2011

Vamos abrir o arquivo /root/.bashrc

# vi /root/.bashrc
#### no final do arquivo vamos acrecentar as linhas abaixo
seguranca()
{
 echo "Qual a cor do cavalo de napoleao?"
 trap seguranca 2 20
 read -s resp
 if [ "$resp" != "naoseinao" ]; then
       echo "Errou"
       logout
 fi
}
seguranca
###### fim do arquivo .bashrc

Explicando:

  1. Quando um usuario logar na conta do root e o arquivo /root/.bashrc vai ser executado.

  2. A linha seguranca vai executar a função seguranca(). Se o usuário errar a resposta é deslogado da conta da root.

    Os linuxers já devem estar pensando É só eu dar um Crtl+C ou Crtl-Z que ele sai do programa e já ganho a conta do root sem responder a pergunta.

    Por isso do nosso amigo trap. Ele possibilita pegar sinais e enviar para um comando.

    Você pode ver a numeração correspondente as sinais com o comando
    # trap -l
    
    Crtl+C = 2 =>  SIGINT
    Crtl-Z = 20 =>  SIGTSTP
    
    A linha trap seguranca 2 20 vai fazer o seguinte: se o pessoa que logou tentar sair do programa com o Crtl+C ou Crtl-Z ele vai chamar a função novamente, só conseguindo ganhar o shell se ele realmente acertar a resposta.

    Protegendo o arquivo para ninguem alem do root ver a resposta:

    # chmod 700 /root/.bashrc
    

    Para maior seguranca desative o Login do root via ssh para não alterar esse arquivo via scp.


Veja a relação completa dos artigos de Altemir Braz Dantas Junior