Introdução
Vamos mostrar nesse artigo quais passos devemos seguir
para recuperar arquivos apagados e que não deveriam.
Para conseguir isso, basicamente precisamos ter acesso
'root', ou pelo menos ter acesso de leitura ao 'raw device'
aonde o arquivo é gravado. Vamos mostrar também
algumas ferramentas úteis, não só para essa
situação, mas como para situações
referentes a filesystems e disk management. Voce vai precisar
ter instalado em seu ambiente o package e2fsprogs. Eles
serão usados nesse artigo, e é default a
instalação dele na maioria das
distribuições.
Backup
No Linux não existe nenhuma maneira automática
para recuperar arquivos apagados. Nao existe nenhuma
proteção do Kernel ou do filesystem prevendo esse
tipo de situação. Eles assumem que um arquivo
apagado, deve ser apagado, e não aceita erros. O que
vamos mostrar aqui, não é 100% eficiente, é
uma tentativa de recuperar dados quando eles são
vitais.
A melhor maneira de fazer recuperação de
arquivos é tendo um bom sistema de BACKUP. Como nem
todos tem condições de ter unidades de fita, é
facil ocorrer situações aonde voce apaga dados que
não eram para ser apagados. Principalmente quando usamos
o modo recursivo do comando rm, 'rm -r'. Algumas
distribuições ( Red Hat, por exemplo ), criam
aliases para o comando rm para 'rm -i', pedindo
confirmação para cada arquivo apagado. Esse tipo de
solução é fraca e pode ser facilmente
sobreposta, usando 'rm -f FILE'. Uma outra forma de proteger
arquivos importantes é setar permissão para 440.
Dessa forma sempre que voce tentar apagar um arquivo com
essas permissões, irá abrir um prompt perguntando
se voce realmente deseja fazer isso. O problema dessa forma
de proteção, é que voce esta se banindo para
escrever no arquivo.
Uma boa forma de proteger arquivos importantes é
criando links e diretórios escondidos. Deixando os
arquivos reais dentro do diretório escondido, e no lugar
aonde o arquivo deveria estar, você deixa um link. Essa
solução é boa para proteger contra deletar o
arquivo, mas não protege para sobre escrever. Um exemplo
para essa dica é:
# mkdir /.backup
#ln /etc/passwd /.backup
Se você apagar /etc/passwd, você tem ainda uma
cópia no /backup. Basta refazer o link, ao inverso
agora, para recuperar o arquivo. Novamente alertando que essa
solução não protege contra sobre escrever o
arquivo. Como por exemplo:
# cp /dev/null /etc/passwd
O arquivo
(/.backup/passwd)
seria zerado, assim como /etc/passwd.