O pacote auditd
é projetado para isso, você pode usar o PAM para atribuir a cada sessão uma ID de sessão para poder rastrear a atividade em uma conta de volta ao login original (e verificar o log de login para determinar onde a pessoa se conectou in from) e use o comando ausearch
para localizar os eventos nos quais você está interessado. É possível ler um guia bastante abrangente aqui embora alguns dos detalhes mais precisos precisem ser alterados para corresponder à sua distribuição. Redhat tem um site com uma FAQ e alguns outros documentos aqui .
Como isso não depende de tentar registrar comandos digitados em shells ou gravar o histórico de comandos dos usuários, ele deve registrar coisas como abrir o vi (que pode ser feito em X ou em screen
), escrever um script (talvez um caractere por vez com comandos de cortar / colar do vi e algumas execuções de :.!/usr/games/fortune
para obter alguns dados de origem que talvez você não consiga registrar) e, em seguida, executar o comando :%!/bin/bash
.