Como saber os arquivos criados por um determinado software?

0

Como conhecer os arquivos criados por um determinado software?
No Linux, quando instalo um software, ele cria arquivos e diretórios.
Como posso saber quais são?

Por exemplo, se eu instalar o vsftpd , essa ferramenta criará

/usr/sbin/vsftpd
/etc/vsftpd/vsftpd.conf 
...

Existe alguma linha de comando ou ferramenta apenas feita para saber isso?

    
por user564928 29.02.2016 / 09:59

2 respostas

3

Para sistemas operacionais baseados em Debian, basta digitar o terminal:

dpkg -L <software>

Para sistemas operacionais baseados em red hat

rpm -ql <software>

Ambos irão gerar todos os arquivos associados ao software.
Por exemplo:

shell>#rpm -ql httpd

/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf

...  (below ) ...

/usr/lib64/httpd/modules/mod_info.so
/usr/lib64/httpd/modules/mod_lbmethod_bybusyness.so

... ( around 400 lines below ) ...

/usr/share/man/man8/suexec.8.gz
/var/cache/httpd
/var/cache/httpd/proxy
/var/lib/dav
/var/log/httpd
/var/www
/var/www/cgi-bin
/var/www/html

.

    
por 29.02.2016 / 10:17
3

Você pode ver a modificação dos diretórios / arquivos em seu sistema de arquivos em diferentes níveis .

Se você quiser ver quais arquivos um pacote oficial instala s, você pode seguir as respostas de MariusMatutiae ou Rishabh Soni e usar dpkg .
IMHO apt-file é mais aconchegante , em seguida, dpkg (por exemplo, apt-file list vsftpd ).

De um modo geral, se você quiser ter certeza de que é um programa específico e não outro para criar um arquivo, é necessário monitorar esse programa . Da mesma forma, se você quiser verificar quem está modificando um arquivo, terá que monitorar esse arquivo . Isso é ainda mais verdadeiro com programas que não pertencem aos pacotes oficiais de uma distribuição Linux.

Para "monitorar enquanto isso " um processo que está criando ou modificando arquivos em seu sistema de arquivos, você pode usar inotify ou FAM , extensões do kernel criado e otimizado para este propósito.
Se você quiser monitorar somente o que é criado / acessado por um processo , você pode usar lsof

lsof -n -p 'pidof your_app'   # If you know the PID of your software
./Install.sh & lsof -n -p $!  # Here it takes the last program in background

Em outro nível, você pode dar uma olhada no strace , capaz de monitorar todas as chamadas do sistema de um processo, que inclui todo o acesso a arquivos. É uma ferramenta poderosa, mesmo com uma saída não tão limpa.

Você pode usar find se quiser ver os arquivos criado ou modificado em uma janela temporal , por exemplo Depois disso, você instalou o programa ou presume ou sabe que o programa estava sendo executado. Por exemplo, você pode procurar por todos os arquivos (e não diretórios) criados nos últimos 5 minutos em algum lugar abaixo a partir do diretório atual com

find . -type f -mmin 5 -print

mas alterando as opções, você pode procurar por arquivos, diretórios, links simbólicos e hard ... É claro que este método usa mais acessos a CPU e disco do que os patches dedicados do kernel reportados acima, mas se você tiver que procurá-lo somente uma vez, esta é uma solução melhor, especialmente se você não começar a pesquisar a raiz / .

Por último, mas não menos importante, você pode tentar identificar um tipo de arquivo com o comando file , por exemplo, file MyScript.sh , com a lista de assinatura (ou números mágicos ), ou com o List de extensões de nome de arquivo . Uma vez que você sabe o tipo de arquivo, você pode adivinhar o programa que criou ou modificou um arquivo entre os que você instalou no computador ... e começar a monitorá-los.

    
por 29.02.2016 / 11:37