Comment afficher l'historique des commandes d'un autre utilisateur sous Linux?

30

Comment afficher l'historique des commandes d'un autre utilisateur?

Je suis administrateur sur ma machine. Je peux voir l'historique normal en le visualisant /home/user_name/.bash_historymais je ne peux pas voir les commandes de cela user_namequand ils le faisaient sudo.

Existe-t-il un moyen de visualiser toutes les commandes exécutées par un seul utilisateur?

Sean Nguyen
la source
1
Volez son mot de passe :) ou par ingénierie sociale ..Si vous n'êtes pas root, et que votre compte est configuré de manière à ce que vous ne puissiez pas accéder / lire la maison / les fichiers des autres utilisateurs, vous êtes à peu près limité.
porteur de l'anneau
8
"Je suis administrateur de ma machine."

Réponses:

23

Sur les systèmes d'exploitation basés sur Debian, faire tail /var/log/auth.log | grep username devrait vous donner l' sudohistorique d' un utilisateur . Je ne crois pas qu'il existe un moyen d'obtenir un historique de commande unifié des commandes normales + sudo d'un utilisateur.

Sur les systèmes d'exploitation basés sur RHEL, vous devez vérifier /var/log/secureau lieu de /var/log/auth.log.

Kerin
la source
Une idée de ce que ce serait sur un système centos? Mes machines Centos 7 n'ont pas/var/log/auth.log
Mitch
3
Essayez /var/log/secureplutôt.
Kerin
Fonctionne parfaitement! Mettez simplement une demande de modification sur votre réponse
Mitch
4

Je viens de tester ce qui suit, et cela a fonctionné comme un charme.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
Tyson
la source
1
Il est déjà au courant de cette commande. De la question d'origine: "Je peux voir l'historique normal en affichant /home/user_name/.bash_history mais je ne peux pas voir les commandes de ce" user_name "quand ils faisaient sudo."
Michael Thompson
2

Si l'utilisateur a émis une commande comme dans sudo somecommand, la commande apparaîtra dans le journal système.

Si l'utilisateur a donné naissance à une coquille par exemple sudo -s, sudo su, sudo sh, etc, la commande peut apparaître dans l'histoire de l'utilisateur root, qui est, dans /root/.bash_historyou similaire.

bdonlan
la source
1
Où est le journal système?
Garrett
1

# zless /var/log/auth*est ton ami ici. Il ouvre même les fichiers compressés. Vous pouvez basculer entre ceux avec en :navant ou en :parrière.

Alternativement, vous pouvez utiliser # journalctl -f -l SYSLOG_FACILITY=10par exemple. En savoir plus à ce sujet sur le wiki Arch Linux

AdamKalisz
la source
1

utiliser la commande ci-dessous

sysdig -c spy_users

si sysdig n'est pas installé , installez ici

sachin_ur
la source
0

Peut-être que ce lien a une valeur pour vous: http://www.sudo.ws/pipermail/sudo-users/2000-March/000052.html

Mais gardez à l'esprit que ne laisser aucune trace dans bash_history est juste une question de démarrage d'une commande avec un espace etcpp. L'histoire est une aide, pas un outil de journalisation.

Salutations de l'Allemagne, Daniel Leschkowski


la source
-1

La logique s'applique à de nombreux autres objectifs.
Et comment lire .sh_history de chaque utilisateur depuis / home / filesystem? Et s'il y en a des milliers?

#!/bin/ksh
last |head -10|awk '{print $1}'|
 while IFS= read -r line
 do
su - "$line" -c 'tail .sh_history'
 done

Voici le script.

Igor MV
la source