Como posso rastrear comandos executados em um terminal (sem bash_history)

0

Estou escrevendo um programa que rastreia atividades de usuários e basicamente tenta automatizar coisas que podem ser.

Atualmente, estou tentando monitorar programas que o usuário usa com frequência na linha de comando. Mas apenas saber não é suficiente, eu preciso de dados ao longo das linhas de quando tal comando foi executado, diretório de trabalho, etc.

Minha solução atual é um conjunto de scripts python, que na inicialização, passam pelo PATH e fazem um script python simulado para cada programa encontrado no PATH. Quando o usuário tenta usar esses comandos, esses scripts são chamados (com o prefixo do caminho para script, para o PATH), cada um desses scripts passa seu nome e argumentos para outro script que registra as informações e, em seguida, chama o que foi originalmente digitado. o terminal (alterando o PATH). É uma solução bastante confusa. Tenho certeza de que há uma maneira simples de fazer isso.

Além disso, é ótimo se eu pudesse obter os dados dos comandos sendo executados em tempo real (ou quase real).

    
por turtleDev 04.06.2015 / 18:40

1 resposta

1

Você examinou o auditd? Se não, veja este slideshow sobre o sistema de auditoria do Linux. Ele fornece a maioria das instalações que você está descrevendo e de uma forma muito mais padronizada e à prova de erros.

link

    
por 04.06.2015 / 18:52