So che il comando 'history' mi dà un elenco dei comandi che ho digitato nel terminale Unix.
Come posso visualizzare la cronologia dei comandi per tutti gli utenti attualmente connessi al sistema?
So che il comando 'history' mi dà un elenco dei comandi che ho digitato nel terminale Unix.
Come posso visualizzare la cronologia dei comandi per tutti gli utenti attualmente connessi al sistema?
Risposte:
Viene visualizzato un elenco di utenti attualmente connessi /var/run/utmp
(vedere man 5 utmp
). La cronologia è memorizzata in ~ / .history o per l'utente bash in ~ / .bash_history. Altre shell possono usare altri file di cronologia, quindi non è così facile ottenere davvero tutte le informazioni.
Inoltre, se un utente ha effettuato l'accesso più volte, il file .bash_history non è sempre affidabile.
Per leggere il utmp
file c'è un "frontend" chiamato who
, quindi puoi anche scrivere uno script di shell per iterare sugli utenti attualmente connessi.
history -a
o simili o quando un utente esce dalla shell.