Linux Coding
Hier werde ich meine geistigen Ergüsse präsentieren, die in den Bereich der Linuxprogrammierung fallen (was wahrsch. Hauptsächlich Bash-programmierung sein wird). Achja: Benutzung 100% auf eigene Gefahr.Und da fang ich auch gleich mit einem kleinen Shellscript an
Sicheres Löschen von Dateien
Erst einmal: Warum sicher löschen - mit einem 'rm Dateiname' ists doch auch weg?Stimmt. Aber nur teilweise. Weil dadurch nur der Eintrag im Filesystem gelöscht wird, die Daten aber noch da bleiben. Sprich: Die Festplatte sagt einfach, dass die Daten nicht mehr da sind.
Prinzipiell ist das nicht weiter schlimm, die meisten Daten sind eh nicht wichtig. Aber bei vertraulichen Daten (oder nicht ganz legalen *hüstel*) kann die Wiederherstellung problematisch werden (besonders bei nicht ganz legalen *hüstel*).
Was also tun?
Richtig. Überschreiben. Am besten mit Zufallszahlen, denn das lässt sich am schwierigsten wiederherstellen.
Am besten mehrfach, damit eventuelle magnetische Überbleibsel (beim schreiben werden keine 100% garantierten Einsen und Nullen gespeichert, sondern Spuren der alten Daten bleiben minimal übrig und ermöglichen eine Wiederherstellung im Labor)
#!/bin/bash
if [ $# -gt 0 ]; then
file=$1
if [ $# -gt 1 ]; then
rnd=$2
else
rnd=10
fi
size=$(ls -l $file 2>/dev/null| tr -s " " | cut -d " " -f 5)
if [ ! "$size" = "" ]; then
i=1
while [ $i -le $rnd ]; do
head -c $size /dev/urandom > $file
echo -n .
i=$[$i+1]
done
rm $file
echo
echo done.
else
echo Datei nicht vorhanden
fi
fi
fi
Zur Benutzung:
Der Aufruf erfolgt über
./secdel.sh Dateiname [Zyklen]
(wenn angenommen wird, dass die Datei unter dem Namen gespeichert wurde und im aktuellen Verzeichnis ist. Achtung: vorher ausführbar machen.)
- Dateiname ist (sinnigerweise) der Name der zu löschenden Datei
- Zyklen ist eine optionale Zahl, die besagt, wie oft die Datei überschrieben wird (Standart 10 mal)