I suppose it’s good practice to wipe out sensitive data from a server before giving it back to your host. On Windows, when I want to safely delete files I use Eraser (NB: versions 5.8.x and 6 suck pretty back – for instance they just fail to install for me, seemingly because of a bad packed runtime – You can get version 5.7 from Sourceforge, although its shell integration won’t work in Windows 7). On Linux, until now I had pretty much no idea. But as often, this kind of pretty basic and useful software can be found in usual packages with simple names. And here we are talking about package “wipe”, of course 😉
To install it, pretty straightforward (NB: I’m using Ubuntu, should be the same on Debian; on Fedora should be the same but with yum):
apt-get install wipe
And then to run it, for basic use it will take ALMOST (see below the warning about wildcards) the same kind of options as “rm”:
myLaptop:/home/david$ wipe -r thisFolder
Okay to WIPE 1 directory ? (Yes/No) y
Please answer "Yes" or "No".
Okay to WIPE 1 directory ? (Yes/No) Yes
Wiping ubuntu-11.10-dvd-amd64.iso, pass 9 (12) [ 213 / 5994]
The default setting is 34 overwrite passes, which is huge and slow, but I guess helpful if you are paranoid. If you want fewer passes, use -Q [number of passes]. The manual might be an interesting read, too.
A very important warning about using wildcards: DO NOT use
wipe -r .*. As reported there, this pattern matches
.. so wipe will then browse around and erase the whole disk if you’re running it as root (and even if you’re not, it will likely get to places where you didn’t want it to go). This is not a bug, it’s actually a feature. rm not matching
.. when you call it on
.* is a safeguard, but when you’re using wipe chances are that it’s more of a problem to miss deletions than to do too many of them, thus this aggressive behavior. I didn’t try it but most likely this is true of
wipe -r * too.
If you want to erase all the dot files in a folder, you can either use
wipe .??* or move on level up and do
wipe -r theFolder, like I did in my example.
Edit: actually, I did gave a shot at wipe -q -r .* on a virtual box, it didn’t wipe everything out, as can be seen from the output:
root@xxxxx:~# wipe -q -r .*
Okay to WIPE 9 regular files and 7 directories ? (Yes/No) Yes
Will not remove .
Will not remove ..
Finally, I thought that could be useful on Windows so I checked out: unfortunately wipe is not available in Cygwin as of today.