Como visualizar o histórico de comandos de outro usuário no Linux?

25

Como posso ver o histórico de comandos de outro usuário?

Eu sou um administrador na minha máquina. Eu posso ver o histórico normal visualizando /home/user_name/.bash_history , mas não consigo ver comandos desse user_name quando eles estavam fazendo sudo .

Existe uma maneira de visualizar todos os comandos executados por um usuário?

    
por Sean Nguyen 11.07.2011 / 23:44

6 respostas

22

Em sistemas operacionais baseados em Debian, fazendo %código% deve fornecer o histórico de tail /var/log/auth.log | grep username de um usuário. Eu não acredito que haja uma maneira de obter um histórico de comando unificado dos comandos normal + sudo de um usuário.

Em sistemas operacionais baseados em RHEL, você precisaria verificar sudo em vez de /var/log/secure .

    
por 11.07.2011 / 23:51
2

Testei o seguinte e funcionou como um encanto.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
    
por 04.11.2015 / 22:51
1

Se o usuário emitiu um comando como em sudo somecommand , o comando aparecerá no log do sistema.

Se o usuário gerou um shell com, por exemplo, sudo -s , sudo su , sudo sh , etc, o comando may aparece no histórico do usuário root, ou seja, em /root/.bash_history ou similar.

    
por 11.07.2011 / 23:52
0

Talvez este link tenha um valor para você : link

Mas você deve se lembrar que deixar nenhum rastreio no bash_history é apenas uma questão de iniciar um comando com um espaço etcpp. O histórico é um ajudante, não uma ferramenta de registro.

Saudações da Alemanha, Daniel Leschkowski

    
por 11.07.2011 / 23:58
0

# zless /var/log/auth* é seu amigo aqui. Ele abre até os arquivos gzipados. Você pode pular entre aqueles com :n para a frente ou :p para trás.

Como alternativa, você pode usar # journalctl -f -l SYSLOG_FACILITY=10 , por exemplo. Leia mais sobre isso no Wiki do Arch Linux

    
por 03.01.2016 / 20:43
-1

A lógica se aplica a muitos outros objetivos.
E como ler o arquivo .sh_history de cada usuário em / home / filesystem? E se houver milhares deles?

#!/bin/ksh
last |head -10|awk '{print $1}'|
 while IFS= read -r line
 do
su - "$line" -c 'tail .sh_history'
 done

Aqui é o script.

    
por 30.09.2018 / 18:38