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:
- Quando um usuario logar na conta do root e o arquivo
/root/.bashrc
vai ser executado. - 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 linhatrap 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.