Come posso controllare la cronologia dei comandi dell'utente in Unix?


13

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?


Non relativo alla programmazione. Ti suggerisco di chiedere su superuser.com .

Non esiste uno strumento standard per ottenere le informazioni, quindi penso che sia relativo alla programmazione (almeno nel senso di "scripting").
IanH,

Risposte:


11

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 utmpfile c'è un "frontend" chiamato who, quindi puoi anche scrivere uno script di shell per iterare sugli utenti attualmente connessi.


2
La storia attuale è tenuta in memoria. Il file della cronologia mostra solo ciò che è stato scritto usando history -ao simili o quando un utente esce dalla shell.
In pausa fino a ulteriore avviso.

2
Si noti che i nomi dei file indicati in questa risposta sono solo i valori predefiniti. Ogni utente avrebbe potuto impostare la propria posizione (vedere la risposta di Joy). Se un utente utilizza shell diverse, è possibile che le loro storie vengano memorizzate in posizioni diverse e non predefinite (ad es. ~ / Mybashhist, ~ / histories / ksh o somesuch). Inoltre, tieni presente che la visualizzazione di tali dati utente potrebbe avere implicazioni legali.
DevSolar,

3
echo $HISTFILE

Quindi visualizzare quel file.


1
Funziona solo se hai precedentemente provenienza l'ambiente dell'utente (come potrebbe aver impostato HISTFILEqualcos'altro).
DevSolar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.