이벤트 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유효 사용자 ID로 실행하는 사람에 의해서만 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 필터는 예를 들어, 유용 할 것이다 su또는 sudo루트에 있습니다. 이 상황에서 루트로 실행되는 많은 것들이 있지만 문제의 사용자가 시작한 것들에만 관심이 있습니다. 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"