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 :
- le récalcitrant se trouve sur un partage NFS
- le rm -rf n'a pas eu plus de succès en direct sur le serveur qu'en montage nfs.
- mv ne fonctionne pas, cela va sans dire
- ... C'est un fichier vide...
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.vM6596Comme 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 wipeLe 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 typeNotez que :
- mon problème est résolu,
- j'ai dit que les conséquences d'un wipe étaient difficilement réparables.