Posso registrar a atividade do vi?

10

Existe algum método para registrar atividades do vi? Eu suspeito que outro usuário esteja emitindo comandos entrando no shell dentro do editor vi, aparentemente esses comandos não são registrados no histórico.

vnix27
fonte

Respostas:

6

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".

chiggsy
fonte
+1 por um bom argumento sobre contabilidade.
Phil Hollenback
7

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.

Steven
fonte
+1 para uma boa maneira simples de restringir o acesso ao vi.
Phil Hollenback
2
mas parece fácil ignorar: "vim -u / dev / null".
jlliagre
Sim, este é essencialmente um problema insolúvel. No momento em que alguém obtém acesso ao seu sistema através de um login, pode subverter a máquina. O melhor que você pode fazer é tornar isso realmente difícil.
Phil Hollenback
4

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, ~/.bashrcportanto, 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.

Phil Hollenback
fonte