2011-07-11 21:44:59 +0000 2011-07-11 21:44:59 +0000
30
30

Come visualizzare la cronologia dei comandi di un altro utente in Linux?

Come posso visualizzare la cronologia dei comandi di un altro utente?

sono un amministratore sulla mia macchina. Posso vedere la normale cronologia visualizzando /home/user_name/.bash_history ma non posso vedere i comandi di quel user_name quando stavano facendo sudo.

C'è un modo per vedere tutti i comandi eseguiti da un utente?

Risposte (6)

23
23
23
2011-07-11 21:51:46 +0000

Sui sistemi operativi basati su Debian, faretail /var/log/auth.log | grep username dovrebbe darvi la cronologia sudo di un utente. Non credo ci sia un modo per ottenere una cronologia unificata dei comandi normali + sudo di un utente.

Sui sistemi operativi basati su RHEL, dovresti controllare /var/log/secure invece di /var/log/auth.log.

5
5
5
2015-11-04 21:51:20 +0000

Ho appena testato il seguente, e ha funzionato alla grande.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
2
2
2
2011-07-11 21:52:18 +0000

Se l'utente ha emesso un comando come in sudo somecommand, il comando apparirà nel log di sistema.

Se l'utente ha generato una shell con, ad esempio, sudo -s, sudo su, sudo sh, ecc, allora il comando può apparire nella storia dell'utente root, cioè in /root/.bash_history o simili.

1
1
1
2019-01-16 07:16:45 +0000

usare il seguente comando

sysdig -c spy_users

se sysdig non è installato, installare qui

1
1
1
2016-01-03 19:43:19 +0000

# zless /var/log/auth* è il tuo amico qui. Apre anche i file gzippati. Puoi saltare tra questi con :n in avanti o :p indietro.

In alternativa, puoi usare # journalctl -f -l SYSLOG_FACILITY=10 per esempio. Leggi di più su questo sul Arch Linux wiki

-1
-1
-1
2018-09-30 16:38:21 +0000

La logica si applica a molti altri obiettivi.
E come leggere .sh_history di ogni utente da /home/ filesystem? E se ce ne sono migliaia?

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

Qui è lo script.