Necesita configurar auditd
para grabar execve
eventos. Ejemplo en RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Ignoro la advertencia de arco y no parece importar, pero puede usarla -F arch=b64
o -F arch=b32
configurarla si lo desea.
El resultado de lo anterior es:
[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 ~]#
Eso es obviamente rápido y sucio, pero eso es lo básico de cómo lo haces. Lo que necesita hacer exactamente probablemente depende en gran medida de lo que está tratando de hacer exactamente. Puede reducir el flujo de auditoría utilizando varios filtros en el auditctl
comando, pero no conozco esa información, así que no sé qué incluir. Si necesita algo más específico, le sugiero que consulte la página de manual o publique un comentario a esta respuesta y la actualizaré un poco más.
Espero que eso te empuje en la dirección correcta.
EDITAR:
Como su pregunta implica mirar a un usuario en particular, puedo mostrarle que:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Idéntico a lo anterior, pero solo será registrado execve
por alguien que se ejecute con la identificación de usuario efectiva 16777216
. Si necesita especificar el loginuid
valor del usuario (con quién iniciaron sesión inicialmente en el sistema), entonces filtre por auid
:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Los filtros AUID / loginuid serían útiles, por ejemplo, si el usuario va a hacer un root su
o un sudo
root. En esa situación, habrá muchas cosas ejecutándose como root, pero solo le preocupan las cosas que el usuario en cuestión inició. auditctl
también le permite apilar filtros para que pueda filtrar por ambos euid
y 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"