Como obter o tempo real de criação de um arquivo no Unix?

6

Estou inspecionando alguns arquivos no meu servidor web dedicado via linux cli após um ataque de hack e descobri que alguns arquivos foram modificados com o comando 'touch' para alterar as datas. Estou disposto a obter a data exata de criação de arquivos para esses arquivos específicos. Eu já tentei seguir

stat
ls -ld

Aqueles não entregaram a data de gravação do arquivo no disco (data de criação)

Existe também alguma outra maneira de obter a data de criação do arquivo? (data real que o arquivo gravou no disco)

    
por inckka 11.12.2013 / 09:46

1 resposta

9

O que você está procurando está no * nix chamado o tempo nascimento do arquivo.

Infelizmente, a maioria dos sistemas de arquivos * nix não rastreiam essas informações.

Se estiver disponível, uma versão recente de stat deverá exibi-lo. Caso contrário, sua melhor aposta provavelmente seria comparar com a listagem de arquivos dos backups (você faz tem backups, certo?) Para ver quais arquivos foram adicionados.

~$ stat .bashrc
  File: '.bashrc'
  Size: 3539            Blocks: 9          IO Block: 3584   regular file
Device: 24h/36d Inode: 204095      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/ michael)   Gid: ( 1000/ michael)
Access: 2013-12-11 09:41:50.315475289 +0100
Modify: 2013-08-16 21:28:42.000000000 +0200
Change: 2013-09-14 01:55:27.167869741 +0200
 Birth: -
~$ 

Como você pode ver, não há data e hora de "nascimento", o que significa que o sistema de arquivos que estou usando para meu diretório pessoal (ZFS no meu caso) não armazena essas informações ou não as expõe por meio do Camada do sistema de arquivos Linux de uma maneira que o stat conhece. De qualquer forma, o efeito é basicamente o mesmo: nenhuma informação está disponível.

O acima dito, eu não ficaria particularmente surpreso se mesmo em um sistema que rastreia os tempos de nascimento dos arquivos, algo como cp --copy-contents --preserve=timestamps /dev/null /tmp/somefile && cat ./somefile >> /tmp/somefile irá efetivamente anular qualquer coisa assim. Portanto, mesmo que os horários de nascimento estejam disponíveis, você não deve confiar neles para algo importante, como avaliar o impacto de uma violação de segurança.

O mais próximo que você pode obter na maioria dos sistemas é provavelmente o tempo de modificação do arquivo ou mtime, que o stat exibe e qual a maioria dos sistemas de arquivos acompanha. No entanto, como você observou, isso é modificado de forma trivial usando touch .

    
por 11.12.2013 / 09:58