GNU/Linux >> Linux Esercitazione >  >> Linux

Posso cercare la cronologia di bash tra tutti gli utenti su un server?

Usa getent per enumerare le home directory.

getent passwd |
cut -d : -f 6 |
sed 's:$:/.bash_history:' |
xargs -d '\n' grep -s -H -e "$pattern" 

Se le tue home directory si trovano in una posizione ben nota, potrebbe essere semplice come

grep -e "$pattern" /home/*/.bash_history

Ovviamente, se un utente utilizza una shell diversa o un diverso valore di HISTFILE , questo non ti dirà molto. Né questo ti parlerà di comandi che non sono stati eseguiti tramite una shell, o di alias e funzioni e comandi esterni ora rimossi che erano in qualche directory utente all'inizio del $PATH dell'utente . Se quello che vuoi sapere è quali comandi hanno eseguito gli utenti, hai bisogno di una contabilità di processo o di un sistema di controllo più elaborato; vedi Monitoraggio dell'attività sul mio computer., Come verificare per quanto tempo è stato eseguito un processo dopo il suo completamento?.


find /home -name .bash_history | xargs grep <string>

In alternativa:

grep string $(find /home -name .bash_history)

Si noti che questo copre le home directory nelle posizioni predefinite. Sarebbe meglio analizzare /etc/passwd o invocare getent , e analizza l'output.

for i in $(getent passwd | cut -d: -f6 ); do grep string ${i}/.bash_history; done

Potresti fare

find /home | grep bash_history | xargs grep "whatever"

Ma non credo davvero che sia molto meglio di quello che stavi pensando.


Linux
  1. Usando grep per cercare al contrario

  2. Come mantengo la mia cronologia di bash tra le sessioni?

  3. Come posso elencare tutti gli utenti bloccati in Linux?

  4. Come puoi rimuovere i duplicati dalla cronologia di bash?

  5. Come posso registrare completamente tutte le azioni degli script bash?

Come escludere in Grep

Comando della cronologia in Linux (Cronologia di Bash)

McFly:una sostituzione della funzione di ricerca della cronologia di Bash "Ctrl + R".

Come eseguire la ricerca Grep su tutti i file e in tutte le directory

Utilizzo della funzione di cronologia su Bash Shell su Ubuntu 16.04 LTS Server

Reimposta la posizione di ricerca della cronologia di bash