Use 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 se encuentran 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 le dirá mucho. 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 usuario $PATH
. Si lo que quiere saber es qué comandos han ejecutado los usuarios, necesita una contabilidad de procesos o algún sistema de auditoría más sofisticado; ver Monitoreo de actividad en mi computadora. , ¿Cómo verificar cuánto tiempo se ejecutó un proceso después de que terminó? .