Use getent
para enumerar os diretórios iniciais.
getent passwd |
cut -d : -f 6 |
sed 's:$:/.bash_history:' |
xargs -d '\n' grep -s -H -e "$pattern"
Se os seus diretórios pessoais estiverem em um local bem conhecido, pode ser tão simples quanto
grep -e "$pattern" /home/*/.bash_history
É claro que, se um usuário usar um shell diferente ou um valor diferente de HISTFILE
, isso não lhe dirá muito. Nem isso lhe dirá sobre comandos que não foram executados através de um shell, ou sobre aliases e funções e comandos externos removidos que estavam em algum diretório do usuário no início do usuário $PATH
. Se o que você quer saber é o que os comandos executam, você precisa de contabilidade de processo ou algum sistema de auditoria mais sofisticado; veja Monitorando a atividade no meu computador. , Como verificar quanto tempo decorreu um processo depois de terminado? .