2011-07-11 21:44:59 +0000 2011-07-11 21:44:59 +0000
30
30

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

Comment puis-je consulter l'historique des commandes d'un autre utilisateur ?

Je suis un administrateur sur ma machine. Je peux voir l'historique normal en visualisant /home/user_name/.bash_history mais je ne peux pas voir les commandes de ce user_name quand ils faisaient sudo.

Y a-t-il un moyen de voir toutes les commandes exécutées par un utilisateur ?

Réponses (6)

23
23
23
2011-07-11 21:51:46 +0000

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

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

5
5
5
2015-11-04 21:51:20 +0000

J'ai juste testé les éléments suivants, et ça a marché comme sur des roulettes.

sudo vim /home/USER_YOU_WANT_TO_VIEW/.bash_history
2
2
2
2011-07-11 21:52:18 +0000

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

Si l'utilisateur a créé un shell avec par exemple sudo -s, sudo su, sudo sh, etc, alors la commande peut apparaître dans l'historique de l'utilisateur root, c'est-à-dire dans /root/.bash_history ou similaire.

1
1
1
2019-01-16 07:16:45 +0000

utilisez la commande ci-dessous

sysdig -c spy_users

si sysdig non installé , installez ici .

1
1
1
2016-01-03 19:43:19 +0000

# zless /var/log/auth* est votre ami ici. Il ouvre même les fichiers gzippés. Vous pouvez passer de l'un à l'autre en passant de :n en avant à :p en arrière.

Vous pouvez aussi utiliser # journalctl -f -l SYSLOG_FACILITY=10 par exemple. Pour en savoir plus, consultez le wiki Arch Linux .

-1
-1
-1
2018-09-30 16:38:21 +0000

Cette logique s'applique à de nombreux autres objectifs.
Et comment lire le .sh_historique de chaque utilisateur à partir de /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

Ici est le script.