você está aqui: Home  → Arquivo de Mensagens

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