È necessario configurare auditdper registrare execveeventi. Esempio su RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Ignoro l'avvertimento dell'arco e non sembra importare ma puoi usarlo -F arch=b64o -F arch=b32impostarlo se vuoi.
Il risultato di quanto sopra è:
[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 ~]#
Questo è ovviamente veloce e sporco, ma sono le basi di come lo fai. Quello che devi fare esattamente probabilmente dipende fortemente da ciò che stai cercando di fare esattamente. Puoi ridurre il flusso di controllo usando vari filtri nel auditctlcomando ma non conosco nessuna di queste informazioni, quindi non so cosa includere. Se hai bisogno di qualcosa di più specifico, ti suggerisco di controllare la pagina man o pubblicare un commento a questa risposta e lo aggiornerò ancora.
Spero che ti aiuti a spingerti nella giusta direzione.
MODIFICARE:
Poiché la tua domanda riguarda l'esame di un determinato utente, posso mostrarti che:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Identico a quanto sopra, ma viene registrato solo execveda qualcuno che esegue con l'ID utente effettivo di 16777216. Se è necessario specificare il loginuidvalore dell'utente (da chi ha effettuato inizialmente l'accesso al sistema), filtrare auidinvece per:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
I filtri AUID / loginuid sarebbero utili, ad esempio, se l'utente eseguirà un root suo sudo. In quella situazione ci saranno molte cose in esecuzione come root, ma ti preoccupi solo delle cose che sono state lanciate dall'utente in questione. auditctlti consente anche di impilare i filtri in modo da poter filtrare per entrambi euide 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"