Потрібно налаштувати auditdдля запису execveподій. Приклад на RHEL5:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve
WARNING - 32/64 bit syscall mismatch, you should specify an arch
[root@ditirlns01 ~]#
Я ігнорую попередження про арку, і це, мабуть, не має значення, але ви можете використовувати -F arch=b64або -F arch=b32встановити його, якщо хочете.
Результатом сказаного є:
[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 ~]#
Це очевидно швидко і брудно, але це основи того, як ви це робите. Те, що вам потрібно точно зробити, мабуть, сильно залежить від того, що ви намагаєтеся робити саме. Ви можете зменшити потік аудиту, використовуючи різні фільтри в auditctlкоманді, але я не знаю жодної з цих даних, тому я не знаю, що включити. Якщо вам потрібне щось більш конкретне, я б вам запропонував або переглянути сторінку чоловіка або опублікувати коментар до цієї відповіді, і я ще трохи оновлю її.
Сподіваюся, що допоможе підштовхнути вас у правильному напрямку.
Редагувати:
Оскільки ваше запитання передбачає перегляд конкретного користувача, я можу вам показати, що:
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F euid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Ідентично вищезазначеному, але буде зареєстровано лише execveтой, хто працює з ефективним ідентифікатором користувача 16777216. Якщо вам потрібно вказати значення користувача loginuid(кого вони спочатку увійшли в систему як), ви auidзамість цього фільтруєте :
[root@ditirlns01 ~]# auditctl -a always,entry -S execve -F auid=16777216
WARNING - 32/64 bit syscall mismatch, you should specify an arch
Фільтри AUID / loginuid були б корисні, наприклад, якщо користувач зробить a suабо sudoвикорінити корінь. У цій ситуації буде багато матеріалів, що працює як root, але ви переймаєтесь лише тими матеріалами, які розпочав користувач. auditctlтакож дозволяє стекувати фільтри, щоб ви могли фільтрувати як euidі 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"