Como ler o histórico atual de um usuário ainda logado?

0

Atualmente tenho uma sessão SSH raiz em um servidor Debian Wheezy, e vejo que outro usuário está logado no momento (com uma conta sem privilégios). Como o usuário ainda está conectado, o comando history não está mostrando a coisa certa porque o histórico não foi liberado e, em seguida, o arquivo ~/.bash_history não está atualizado (ainda está na memória).

Como posso descarregar a memória para ver o que um usuário fez durante sua sessão quando ele ainda está logado?

    
por gr0bz 25.03.2014 / 09:39

2 respostas

0

Aqui está um pequeno script que deve despejar o histórico. Observe que você precisa ser root para roubar espaço de memória de outros processos.

#!/bin/bash
if [ $# -eq 0 ]; then
        echo "usage: $0 <bash_pid>"
        exit 1
fi
gdb -batch \
        --eval "set sysroot /" \
        --eval "attach $1" \
        --eval "call write_history(\"/tmp/bash_history-$1.txt\")" \
        --eval 'detach' \
        --eval 'q'
exit 0

p.s. Ver erro como "aviso: não foi possível carregar os símbolos da biblioteca compartilhada para ..." pode acontecer junto com algumas outras linhas com aparência de erro. Tente encontrar o arquivo de histórico de / tmp / antes de começar, também convencido de que o script não funcionou.

    
por 25.03.2014 / 10:30
0

Você não pode realmente confiar no bash_history porque nem sempre é salvo ou pode ser sobrescrito. Além disso, nem tudo é normalmente salvo durante o uso de várias sessões (isso depende da configuração, é claro).

Se você realmente precisa desses dados rastreados, eu continuo configurando acct , que tem ferramentas úteis como:

  • O comando ac imprime as estatísticas dos logins / logouts do usuário (tempo de conexão) em horas.
  • O comando lastcomm imprime as informações dos comandos do usuário executados anteriormente.
  • O comando accton é usado para ativar / desativar o processo para contabilidade.
  • O comando sa resume as informações dos comandos executados anteriormente.
  • Os comandos last e lastb mostram a listagem dos últimos usuários que efetuaram login.

Para instalar:

apt-get install acct

Então você deve habilitar o serviço

service pcacct start
    
por 25.03.2014 / 09:51