Wipe : suppression de données irréductibles

Ce tip est issu d'une situation fort désagréable et inconfortable qui m'a été donnée de rencontrer : un rm qui ne fonctionne mais alors pas du tout ! Le pire, c'est que le fichier en question -car c'est bien un fichier (?!!!?) qui bloque un rm -rf (pourtant, syntaxe ok) semble être un fichier vide. Le fait est que :
  1. le récalcitrant se trouve sur un partage NFS
  2. le rm -rf n'a pas eu plus de succès en direct sur le serveur qu'en montage nfs.
  3. mv ne fonctionne pas, cela va sans dire
  4. ... C'est un fichier vide...
Dans ce cas de figure, pas mal d'alternatives fourmillent, et la première étant de supprimer le fichier par son inode :
k-srv:/export/beta $ stat HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596
File: `HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596'
Size: 0               Blocks: 0          IO Block: 32768  fichier régulier vide
Device: 1ah/26d Inode: 247409165   Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 3132/ UNKNOWN)   Gid: ( 3000/  k-user)
Access: 2011-09-02 09:43:04.000000000 +0200
Modify: 2011-09-01 16:33:48.000000000 +0200
Change: 2011-09-01 16:33:48.000000000 +0200

k-srv:/export $ ls -il HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596
247409165 -rw-r--r-- 1 3132 k-user 0 2011-09-01 16:33 HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596
k-srv:/export $ su -c "find . -inum 247409165 -exec rm -i {} \\;"
Password:
rm: détruire fichier régulier vide `./HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596'? y
rm: ne peut enlever `./HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596': Aucun fichier ou dossier de ce type
k-srv:/export $ ls -il HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596
247409165 -rw-r--r-- 1 3132 k-user 0 2011-09-01 16:33 HOME/Documents/LaTeX/Rapport4-b4/qt_temp.vM6596
Comme vous pouvez le constater, cela ne fonctionne pas mieux que notre bon vieux rm -rf. En farfouillant sur le Wired, j'ai pu trouver 2 outils ma foi bien sympa : Wipe et Schred. Le second étant plutôt orienté "je te dd plusieurs fois avant de te supprimer", aka sécurité, je me suis penchée sur le premier : Wipe. Et là, bonne surprise, il est dans les dépôts !
k-srv:/export $ apt-get install wipe
Le premier test, lancé en interactif (histoire de contrôler un minimum ce qui est fait) ne semble pas satisfaisant :
k-srv:/export/beta $ su -c "wipe -r -i /export/beta/HOME/"
Password:
wipe: destroy files in `/export/beta/HOME/'? y
wipe: destroy files in `Documents'? y
wipe: destroy files in `LaTeX'? y
wipe: destroy files in `Rapport4-b4'? y
wipe: destroy file `qt_temp.vM6596'? y
wipe: cannot rename `qt_temp.vM6596': Invalid argument
wipe: remove directory `Rapport4-b4'? y
wipe: Directory not empty: unable to remove directory: `Rapport4-b4'
wipe: remove directory `LaTeX'? y
wipe: Directory not empty: unable to remove directory: `LaTeX'
wipe: remove directory `Documents'? y
wipe: Directory not empty: unable to remove directory: `Documents'
wipe: remove directory `/export/beta/HOME'? y
wipe: Directory not empty: unable to remove directory: `HOME'
Mais en fait si, quoique pas tout-à-fait propre : une arborescence a été créée par le run de wipe, pas très joli, un peu incompréhensible :
k-srv:/export/beta $ ll
total 20
4 drwxr-xr-x  3 root root    4096 2011-09-02 09:54 .
12 drwxr-xr-x  3 3132 k-user 12288 2011-09-02 09:54 3s%@elQFgjxuX+YZ...
4 drwxr-xr-x 25 root root    4096 2011-09-01 04:42 ..
Le retry d'un peu plus haut, en revanche, paie, mais toujours avec ce faux-négatif. Attention, ici, c'est la suppression COMPLETE du répertoire que je lance, car c'était dans mon intention de tout supprimer concernant beta ! Cela n'a pas résolu directement la suppression du fichier fautif ! Et surtout, gare si vous faites un copier/coller, les conséquences sont difficilement réparables...
k-srv:/export $ wipe -r -v -f -i /export/beta/
wipe: destroy files in `/export/beta/'? y
wipe: destroy files in `j9E0tfoEivctXXg2Slx_MEYofK#cq...'? y
wipe: cannot rename `qt_temp.vM6596': Invalid argument
wipe: remove directory `LSmlfyE5s1@LTquaetz#%w2...'? y
wipe: Directory not empty: unable to remove directory: `LSmlfyE5s1@LTquaetz#%w...'
wipe: remove directory `74UAnCRudHzgJyZP1ydU1N08D%DNY3t3x5Q0N_HD...'? y
wipe: Directory not empty: unable to remove directory: `74UAnCRudJyZP1ydU1N08D%DN...'
wipe: remove directory `gP6Mw2SssTzzeWBAx7akfCZHw2jN8pMSZqM#qe8n%fc1FMWOAbklWObxvU...'? y
wipe: Directory not empty: unable to remove directory: `gP6Mw2SssTzzeWBAx7R3zakfCZHw2...'
wipe: remove directory `j9E0tfoEivctXXg2Slx_MEYofK#cq.kCGR9jpnAPR4C@xcRKiUJXB8uow...'? y
wipe: Directory not empty: unable to remove directory: `j9E0tfoEivctXXg2Slx_MEYofK#cq...'
wipe: remove directory `/export/beta'? y
wipe: Directory not empty: unable to remove directory: `beta'

k-srv:/export $ ls /export/beta
ls: ne peut accéder /export/beta : Aucun fichier ou dossier de ce type
Notez que :
  1. mon problème est résolu,
  2. j'ai dit que les conséquences d'un wipe étaient difficilement réparables.
En effet, car comme on trouve des utilitaires de suppression, on en trouve de restauration. Ca fera d'ailleurs l'objet d'un autre tip  :) Sur ce, have a nice day !
Vus : 1281
Publié par K-Tux : 59