GNU/Linux >> Tutoriels Linux >  >> Linux

Puis-je rechercher l'historique bash parmi tous les utilisateurs d'un serveur ?

Utilisez getent pour énumérer les répertoires personnels.

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

Si vos répertoires personnels se trouvent dans un emplacement bien connu, cela peut être aussi simple que

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

Bien sûr, si un utilisateur utilise un shell différent ou une valeur différente de HISTFILE , cela ne vous dira pas grand chose. Cela ne vous renseignera pas non plus sur les commandes qui n'ont pas été exécutées via un shell, ou sur les alias et les fonctions et les commandes externes maintenant supprimées qui se trouvaient dans un répertoire utilisateur au début du $PATH de l'utilisateur . Si ce que vous voulez savoir, ce sont les commandes que les utilisateurs ont exécutées, vous avez besoin d'une comptabilité de processus ou d'un système d'audit plus sophistiqué. voir Surveillance de l'activité sur mon ordinateur., Comment vérifier la durée d'exécution d'un processus après sa fin ?.


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

Ou :

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

Notez que cela couvre les répertoires personnels dans les emplacements par défaut. Il serait préférable d'analyser /etc/passwd ou invoquez getent , et analysez la sortie de cela.

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

Vous pourriez faire

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

Mais je ne pense pas vraiment que ce soit beaucoup mieux que ce que vous pensiez.


Linux
  1. Analyser l'historique de Bash sous Linux

  2. Un script Bash peut-il être accroché à un fichier ?

  3. Historique de Bash :« ignoredups » et « Erasedups » Paramètre un conflit avec l'historique commun à travers les sessions ?

  4. Nettoyage automatique de l'historique de Bash ?

  5. Comment puis-je rechercher un motif multiligne dans un fichier ?

Comment exclure dans Grep

Commande d'historique sous Linux (historique de bash)

McFly - Un remplacement de la fonction de recherche d'historique Bash 'Ctrl + R'

Comment effectuer une recherche Grep sur tous les fichiers et dans tous les répertoires

Utilisation de la fonctionnalité d'historique sur Bash Shell sur le serveur Ubuntu 16.04 LTS

Comment pouvez-vous supprimer les doublons de l'historique bash ?