Use getentpara enumerar os diretórios pessoais.
getent passwd |
cut -d : -f 6 |
sed 's:$:/.bash_history:' |
xargs -d '\n' grep -s -H -e "$pattern"
Se os diretórios pessoais estiverem em um local conhecido, pode ser tão simples quanto
grep -e "$pattern" /home/*/.bash_history
Obviamente, se um usuário usar um shell diferente ou um valor diferente de HISTFILE, isso não lhe dirá muito. Isso também não informa sobre comandos que não foram executados por meio de um shell, ou sobre aliases e funções e comandos externos agora removidos que estavam em algum diretório do usuário no início do usuário $PATH. Se o que você quer saber é quais comandos os usuários executaram, você precisa da contabilidade de processos ou de algum sistema de auditoria mais sofisticado; consulte Monitorando atividades no meu computador. , Como verificar por quanto tempo um processo foi executado após a conclusão? .