Respostas:
Você também pode ativar a contabilidade do processo (s / can / should /!)
Você pode então usar:
lastcomm(1)
para ver o comando ser executado e se eles foram executados após um fork, com ou sem um exec.
Combinado com um IDS baseado em host, isso deve fornecer o que você precisa "para que a justiça do rei seja feita com ele".
Como você está registrando as atividades deles agora? O mais fácil é impedi-los de lançar shells do vi.
# vi /home/user/.exrc
set exrc
set shell=/bin/false
# chown root:root /home/user/.exrc
# chmod 644 /home/user/.exrc
# chattr +i /home/user/.exrc
Se você estiver usando um shell especial para registrar seus comandos, poderá alterar o vi para usar somente esse shell.
Você está falando sobre a história do shell? O vi shell mode ( :sh
) inicia o shell padrão do usuário. Se isso é bash, você pode garantir que o log do histórico esteja sempre ativado editando o global / etc / bashrc e adicionando:
set HISTFILE=~/.bash_history
shopt -s histappend
PROMPT_COMMAND='history -a'
isso garantirá que todos os comandos do usuário sejam registrados em um arquivo, não sejam substituídos e atualizados sempre que o prompt do shell aparecer.
Observe que os usuários podem substituir isso por conta própria, ~/.bashrc
portanto, isso não é uma garantia absoluta de que o log ocorrerá.
Algumas versões do vi (como o nvi) suportam um modo de segurança que desativa o acesso ao shell, iniciando o vi como nvi -S
. Você pode definir um alias global em/etc/bashrc
para forçar esse modo por padrão também.
Observe que, em geral, a questão dos usuários que acessam o shell por meios inesperados é um problema clássico do unix. Não há como desativar isso completamente, o melhor que você pode fazer é tentar limitar o acesso por padrão. Um usuário sofisticado (ou mesmo um usuário que sabe usar o google) sempre pode contornar essas restrições. Por exemplo, se um usuário não quiser que seu histórico de shell seja registrado, ele poderá apenas executar uma nova cópia do shell com as opções que ele deseja usar.
Aqui está um ótimo artigo de como forçar o log no bash e as maneiras pelas quais esse log pode ser contornado.
Por fim, você já pensou em conversar com o usuário para determinar o que está fazendo? 99% do tempo, a comunicação verbal simples pode esclarecer qualquer confusão. Se você estiver registrando a atividade deste usuário porque não confia neles, talvez possa conversar com eles sobre suas preocupações.