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

30

Como posso visualizar 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_historymas não consigo ver comandos disso user_namequando eles estavam fazendo sudo.

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

Sean Nguyen
fonte
1
Roube a senha dele :) ou por engenharia social .. Se você não é root e sua conta está configurada de uma maneira que você não pode ir / ler a home / arquivos de outros usuários, você está praticamente restrito.
anel portador
8
"Eu sou um administrador na minha máquina."

Respostas:

23

Em sistemas operacionais baseados no Debian, o fazer tail /var/log/auth.log | grep username deve fornecer um sudohistórico ao usuário . Não acredito que haja uma maneira de obter um histórico unificado de comandos dos comandos normais + sudo de um usuário.

Em sistemas operacionais baseados em RHEL, você precisaria verificar em /var/log/securevez de /var/log/auth.log.

Kerin
fonte
Alguma pista do que isso seria em um sistema centos? Minhas máquinas Centos 7 não têm um/var/log/auth.log
Mitch
3
Tente em /var/log/securevez disso.
Kerin
Funciona perfeitamente! Basta colocar uma solicitação de edição na sua resposta #
305 Mitch Mitch
4

Acabei de testar o seguinte e funcionou como um encanto.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
Tyson
fonte
1
Ele já está ciente desse comando. Da pergunta original: "Eu consigo ver o histórico normal visualizando /home/user_name/.bash_history, mas não consigo ver comandos desse" user_name "quando eles estavam executando o sudo."
Michael Thompson
2

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

Se o usuário gerou uma concha com, por exemplo, sudo -s, sudo su, sudo sh, etc, em seguida, o comando pode aparecer no histórico do usuário root, ou seja, na /root/.bash_historyou similar.

bdonlan
fonte
1
Onde está o log do sistema?
Garrett
1

# zless /var/log/auth*é seu amigo aqui. Abre até os arquivos compactados em gzip. Você pode pular entre os que :navançam ou :precuam.

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

AdamKalisz
fonte
1

use o comando abaixo

sysdig -c spy_users

Se o sysdig não estiver instalado , instale aqui

sachin_ur
fonte
0

Talvez este link tenha um valor para você: http://www.sudo.ws/pipermail/sudo-users/2000-March/000052.html

Mas você deve se lembrar de que não deixar rastros no bash_history é apenas uma questão de iniciar um comando com um espaço etcpp. A história é um auxiliar, não uma ferramenta de registro.

Saudações da Alemanha, Daniel Leschkowski


fonte
-1

A lógica se aplica a muitos outros objetivos.
E como ler .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 está o script.

Igor MV
fonte