GNU/Linux >> Tutoriales Linux >  >> Linux

¿Puedo buscar el historial de bash en todos los usuarios de un servidor?

Usa getent para enumerar los directorios de inicio.

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

Si sus directorios de inicio están en una ubicación conocida, podría ser tan simple como

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

Por supuesto, si un usuario usa un shell diferente o un valor diferente de HISTFILE , esto no te dirá mucho. Esto tampoco le informará sobre comandos que no se ejecutaron a través de un shell, o sobre alias y funciones y comandos externos ahora eliminados que estaban en algún directorio de usuario al principio del $PATH del usuario. . Si lo que quiere saber es qué comandos han ejecutado los usuarios, necesita la contabilidad de procesos o algún sistema de auditoría más sofisticado; consulte Monitoreo de actividad en mi computadora., ¿Cómo verificar cuánto tiempo se ejecutó un proceso después de que finalizó?.


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

Alternativamente:

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

Tenga en cuenta que esto cubre directorios de inicio en ubicaciones predeterminadas. Sería mejor analizar /etc/passwd o invocar getent , y analice la salida de eso.

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

Podrías hacer

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

Pero realmente no creo que sea mucho mejor que lo que estabas pensando.


Linux
  1. ¿Limpieza automática del historial de bash?

  2. Usando grep para buscar en reversa

  3. ¿Cómo puedo buscar un patrón de varias líneas en un archivo?

  4. Restablecer la posición de búsqueda del historial de bash

  5. ¿Cómo puedo enumerar todos los usuarios bloqueados en Linux?

Cómo usar los comandos del historial de Bash

Cómo excluir en Grep

Comando de historial en Linux (Bash History)

McFly:un reemplazo para la función de búsqueda de historial de Bash 'Ctrl + R'

Cómo realizar una búsqueda Grep en todos los archivos y en todos los directorios

Uso de la función de historial en Bash Shell en el servidor Ubuntu 16.04 LTS