Como descobrir o que está criando arquivos temporários

4

Eu noto muitos arquivos vazios em / tmp com nomes semelhantes a "/tmp/tmp.tMIHx17730". Eu executo a regra de auditoria e descobri que o mktemp está criando, o que não é muito útil.

Como descubro qual script chama o mktemp para criar esses arquivos? Posso capturar o id do processo pai / linha de comando com o auditd?

Atualização: Eu acredito que eu tenho o id do processo pai (ppid = 17729), mas o script sai rapidamente e não consigo encontrar o script. Posso configurar o auditd para obter também a linha de comando do processo pai?

Atualização 2: Aqui está como eu setup auditd para mostrar whatwrites to tmp:

auditctl -w /tmp -k tmpfiles

Então:

ausearch  -k tmpfiles|grep "tmp."

Então eu escolho um arquivo e faço

ausearch  -k tmpfiles -f /tmp/tmp.tMIHx17730

Isso me mostra o processo que criou o arquivo e o processo pai pid. Eu preciso configurar algum tipo de processo de início de escuta para pegar o que é o processo mais recente com esse pid

    
por NickSoft 11.11.2015 / 17:23

1 resposta

1

ok. Eu achei assim:

configuração auditd:

auditctl -w /tmp -k tmpfiles
auditctl -a task,always

Em seguida, pesquise

ausearch  -k tmpfiles|grep "/tmp/tmp."

Eu recebo algo assim:

Então eu recebo ppid = 5807 e pesquiso ou o processo:

ausearch -p 5807

Eu tenho algo como

time->Thu Nov 12 12:14:34 2015
type=SYSCALL msg=audit(1447323274.234:2547064): arch=c000003e syscall=231 a0=1 a1=3c a2=1 a3=0 items=0 ppid=5772 pid=5807 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=84330 comm="bitdefender-wra" exe="/bin/bash" key=(null)

Onde exe="/ bin / bash" é o executável e comm="bitdefender-wra" é a linha de comando (truncada).

Então, simplesmente corro:

# locate bitdefender-wra
/usr/lib/MailScanner/bitdefender-wrapper

E aí está:

LogFile=$(mktemp) || { echo "$0: Cannot create temporary file" >&2; exit 1; }

Eu mudo isso para:

LogFile=$(mktemp /tmp/bitdefender.XXXXXXXXXXXX) || { echo "$0: Cannot create temporary file" >&2; exit 1; }

Para verificar se este é o script que não exclui seus arquivos temporários. Há rm -f $LogFile abaixo, mas também há saída antes disso.

Tenha em mente que pode haver uma maneira melhor. Então, vou esperar por alguém para dar o melhor caminho para encontrar o pai com a linha de comando de um processo que está criando arquivos tmp. Meu caminho não tem muitos filtros e cria logs muito grandes.

    
por 12.11.2015 / 12:02