Exibindo o histórico bash do TTY ativo separado

4

Estou trabalhando em um script que ajudará os administradores de nossa equipe a monitorar o que está acontecendo em outros terminais por outros usuários conectados.

Uma coisa em que estou preso agora é como ver quais comandos foram digitados. Eu percebo que o histórico não é salvo até que o usuário saia ou digite history -a , mas tem que haver uma maneira de ver o que está atualmente no histórico, mesmo que esteja armazenado na memória em algum lugar.

É possível salvar em algum lugar em /proc/${pid_of_users_bash} ? Eu tentei digitar um comando echoing uma única string (EG: echo "foobarbaz" , em seguida, greping para foobarbaz através de quaisquer arquivos simples dentro do diretório associado /proc/PID , mas sem sorte.

Se alguém tiver uma solução que não envolva a configuração de PROMPT_COMMAND ou a configuração de histappend (como estes ), isso seria muito apreciado.

    
por Justin 02.10.2017 / 21:30

1 resposta

0

O Bash não fornece informações que você deseja. Eu acho que você quer evitar a configuração de COMMAND_PROMPT e histappend porque os usuários podem substituí-los facilmente. Mas os usuários podem desabilitar completamente o armazenamento de comandos no histórico quando eles configuram HISTCONTROL="ignorespace" e inserem um espaço antes de cada comando. Portanto, os usuários que não estão dispostos a serem monitorados não podem ser monitorados de forma confiável por meio do histórico bash.

O monitoramento ad hoc de uma única sessão pode ser feito em strace . Procure o PID do bash do usuário e, em seguida, chame strace -p <bash-pid> 2>&1 |grep "read(0," . Você pode ver todos os caracteres digitados pelo usuário - incluindo erros de digitação e comandos de edição.

A maior parte da distribuição linux fornece auditd package. Ele monitora e audita os componentes do sistema para que o administrador possa obter informações sobre as atividades do sistema no passado. Um módulo PAM pam_tty_audit coopera com auditd e ativa ou desativa a auditoria de atividades TTY. Eu acho que você não precisa reinventar roda e usar o pam_tty_audit .

    
por 15.10.2017 / 11:22