+ Responder ao Tópico



  1. #1

    Padrão Scrip para log de conexão com data, hora e usuário! - Dúvida

    Bom dia pessoal,


    Estive dando uma procurada no google a respeito de alguma script que incrementa o history ou então gera logs de conexão de usuário, com data e hora e o comando que foi executado. Seria uma espécie de history porem mais complexo. Não consegui muita coisa, e gostaria de saber se alguém conhece ou tem noção de como posso fazer isso!


    Grato,

    Filipe

  2. #2

    Padrão

    Ola amigo!
    Então lendo sua mensagem me senti desafiado! Hahaha
    E com uma solução muito simples você pode chegar a algo bem legal mas com o custo de perder um pouco de funcionalidade!
    Fiz um script assim:

    Código :
    #!/bin/bash
     
    while [ 1 ]
    do
        echo -n "$USER@$HOSTNAME # "
        read command
        $command
    done
    Com isso eu logava no meu linux de forma remota e podia executar comandos com meu usuario temporario!
    Tinha as mesmas limitações como por exemplo não poder ver certos arquivos de log!
    Claro que isso não esta levando em conta NENHUM aspecto de segurança, mas é interessante para fazer algum teste! Hehehe
    Com isso antes de executar o comando você pode enviar os logs para algum outro lado com syslog por exemplo!
    Eu fiz um tutorial de syslog em shell script derrepente pode ajudar a incrementar esse script --> https://under-linux.org/blogs/zenun/...om-logger.html!

    Faloww espero que ajude!

  3. #3

    Padrão

    Como te falei... com isso que esta ai se o usuario digitar por exemplo "bash" ele vai cair dentro do shell!
    Mas você pode ir melhorando! Eu fiz algo assim aqui para testar:

    Código :
    #!/bin/bash
     
    while [ 1 ]
    do
        echo -n "$USER@$HOSTNAME # "
        read command
     
        if [ ! -z "$command" ];
        then
            if [[ "$command" =~ "bash" ]];
             then
                echo "" > /dev/null
            else
                $command
            fi
     
        fi
    done
    Assim só entra nos comandos se ele digita alguma coisa...
    Se for algo que contenha bash por exemplo (nao importa se é bash ou /bin/bash) , ele substitui o valor da variavel pelo echo!
    Poderia colocar no if todos os shells que você tem instalado no seu sistema e ai não teria muito problema de ele sair do script!
    Hehehe acho que é legal para aprender algo novo isso!
    Falowww
    Última edição por zenun; 28-08-2008 às 15:03. Razão: melhorando o if!!

  4. #4

    Padrão

    Citação Postado originalmente por zenun Ver Post
    Como te falei... com isso que esta ai se o usuario digitar por exemplo "bash" ele vai cair dentro do shell!
    Mas você pode ir melhorando! Eu fiz algo assim aqui para testar:

    Código :
    #!/bin/bash
     
    while [ 1 ]
    do
        echo -n "$USER@$HOSTNAME # "
        read command
     
        if [ ! -z "$command" ];
        then
            if [[ "$command" =~ "bash" ]];
             then
                echo "" > /dev/null
            else
                $command
            fi
     
        fi
    done
    Assim só entra nos comandos se ele digita alguma coisa...
    Se for algo que contenha bash por exemplo (nao importa se é bash ou /bin/bash) , ele substitui o valor da variavel pelo echo!
    Poderia colocar no if todos os shells que você tem instalado no seu sistema e ai não teria muito problema de ele sair do script!
    Hehehe acho que é legal para aprender algo novo isso!
    Falowww
    E se você agregar isso no inicio do script, depois do "#!/bin/bash":

    Código :
    stty intr ""
    Nem Control+C vai parar o script de ser executado!
    Ele precisa digitar "exit" para sair do shell e ser desconectado do ssh ou ter que digitar de novo usuario e senha!
    Assim fica bem legal!

  5. #5

    Padrão

    Muito obrigado cara....vou testar aqui nos servidores....e em breve retorno o resultado!

    Abraços.