Vous devez configurer auditd
pour enregistrer les execve
événements. Exemple sur RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
J'ignore l'avertissement de voûte et il ne semble pas avoir d'importance, mais vous pouvez l'utiliser -F arch=b64
ou -F arch=b32
le régler si vous le souhaitez.
Le résultat de ce qui précède est:
[root@ditirlns01 ~]# ls /tmp/whatever
ls: /tmp/whatever: No such file or directory
[root@ditirlns01 ~]# grep whatever /var/log/audit/audit.log
type=EXECVE msg=audit(1386797915.232:5527206): argc=3 a0="ls" a1="--color=tty" a2="/tmp/whatever"
type=EXECVE msg=audit(1386797927.133:5527241): argc=3 a0="grep" a1="whatever" a2="/var/log/audit/audit.log"
[root@ditirlns01 ~]#
C'est évidemment rapide et sale, mais c'est la base de la façon dont vous le faites. Ce que vous devez faire exactement dépend probablement beaucoup de ce que vous essayez de faire exactement. Vous pouvez réduire le flux d'audit à l'aide de divers filtres dans la auditctl
commande, mais je ne connais aucune de ces informations, donc je ne sais pas quoi inclure. Si vous avez besoin de quelque chose de plus spécifique, je vous suggère de consulter la page de manuel ou de poster un commentaire sur cette réponse et je la mettrai à jour davantage.
J'espère que cela vous poussera dans la bonne direction.
ÉDITER:
Puisque votre question implique de regarder un utilisateur particulier, je peux vous montrer que:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Identique à ce qui précède, mais uniquement execve
par une personne exécutant avec l'ID utilisateur effectif de 16777216
sera enregistré. Si vous devez spécifier la loginuid
valeur de l'utilisateur (sous lequel il s'est initialement connecté au système), vous devez filtrer à la auid
place:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Les filtres AUID / loginuid seraient utiles par exemple si l'utilisateur fera un su
ou sudo
pour rooter. Dans cette situation, il y aura beaucoup de choses en cours d'exécution en tant que root, mais vous ne vous souciez que des choses qui ont été lancées par l'utilisateur en question. auditctl
vous permet également d'empiler des filtres afin que vous puissiez filtrer par les deux euid
et auid
:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216 -F euid=0
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]# ls /tmp/nashly -ltar
ls: /tmp/nashly: No such file or directory
[root@ditirlns01 ~]# grep nashly /var/log/audit/audit.log
type=EXECVE msg=audit(1386798635.199:5529285): argc=4 a0="ls" a1="--color=tty" a2="/tmp/nashly" a3="-ltar"
type=EXECVE msg=audit(1386798646.048:5529286): argc=3 a0="grep" a1="nashly" a2="/var/log/audit/audit.log"