Use getent
para 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? .