Οριστική-Ασφαλής διαγραφή αρχείων με Shred

rizitis | Σάβ, 03/05/2011 - 22:30 | 4' | 11

Στον υπολογιστή μας πολλές φορές υπάρχουν αρχεία τα οποία τα διαγράφουμε αλλά τα περισσότερα μπορούν να ανακτηθούν είτε από εμάς είτε από τρίτους με τις κατάλληλες διεργασίες.

Αν για κάποιο λόγο θέλουμε να διαγράψουμε κάποιο/α αρχεία οριστικά από τον υπολογιστή μας, χωρίς να μπορεί ποτέ κανείς να τα ανακτήσει πια,η rm δεν είναι αρκετή, για αυτήν την δουλειά υπάρχει η εφαρμογή shred.

Υπάρχει σε όλες τις διανομές μια και είναι μέρος του πακέτου coreutils.

Η πρώτη μας δουλειά πριν την χρήση είναι το man shred ;)

Προσωπικά μου κέντρισε το ενδιαφέρον ο έξυπνος τρόπος ο οποίος δουλεύει πάνω στο αρχείο το οποίο θέλουμε να διαγράψουμε.

Η shred πρώτα γράφει μερικές φορές πάνω στο αρχείο, το μετονομάζει μερικές ακόμα και στο τέλος το διαγράφει.

Για να δούμε πως δουλεύει η shred πρώτα δημιουργούμε ένα αρχείο πχ

[email protected]:~$ echo "1234567890abcd" > arxeio.txt
[email protected]:~$ cat arxeio.txt 
1234567890abcd
[email protected]:~$ ls -l arxeio.txt 
-rw-r--r-- 1 rizitis users 15 Μάρ   5 22:05 arxeio.txt

Θα τρέξουμε το shred πάνω στο αρχείο χωρίς να βάλουμε κάποια παράμετρο και μετά θα δούμε τι άλλαξε πάνω στο αρχείο

[email protected]:~$ shred arxeio.txt 
[email protected]:~$ cat arxeio.txt 
؅@�f�?$��39$��Qi��
��:���}������ķ�c�ȄVvKZۖUV� YH��V\cg�u���=�h����8\a��&��^�7���l_z�z

Για να διαγράψουμε οριστικά το αρχείο θα βάλουμε την παράμετρο -u επίσης θα βάλουμε και -v για να εμφανίζετε στον τερματικό όλη η διαδικασία μέχρι την οριστική διαγραφή του αρχείου.

[email protected]:~$ shred -u -v arxeio.txt 
shred: arxeio.txt: πέρασμα 1/3 (random)...
shred: arxeio.txt: πέρασμα 2/3 (random)...
shred: arxeio.txt: πέρασμα 3/3 (random)...
shred: arxeio.txt: διαγράφεται
shred: arxeio.txt: renamed to 0000000000
shred: 0000000000: renamed to 000000000
shred: 000000000: renamed to 00000000
shred: 00000000: renamed to 0000000
shred: 0000000: renamed to 000000
shred: 000000: renamed to 00000
shred: 00000: renamed to 0000
shred: 0000: renamed to 000
shred: 000: renamed to 00
shred: 00: renamed to 0
shred: arxeio.txt: διεγράφει
[email protected]darkstar:~$ 

Παρατηρούμε ότι το αρχείο πρώτα γράφτηκε 3 φορές και μετά μετονομάστηκε 10 φορές ώσπου στο τέλος διαγράφηκε.

Η εφαρμογή με τους κατάλληλους διακόπτες μπορεί να διαγράψει ακόμα και έναν ολόκληρο δίσκο πχ /dev/sda απλά εκτός από τα αρχεία θα καταστρέψει και το file system οπότε ο δίσκος θα χρειαστεί φορμάρισμα ξανά.

Είναι κάπως επικίνδυνη η χρήση της και νομίζω καλό είναι να χρησιμοποιείτε μόνο για αρχεία που περιέχουν πολύ προσωπικά δεδομένα.

Δώσε αστέρια!
Σχόλια

Πολυ ωραίος οδηγός για το shred και τον παράξενο τρόπο διαγραφής...
Τώρα πες μας για την ανάκτηση δεδομένων!

αν έχεις άμεσο πρόβλημα δοκίμασε το extundelete ή foremost ή το testdisk και ότι βρεις βρήκες

Και μετά φτιάξε και ένα οδηγό εδώ ;)

Sta perisotera moderna filesystems to shred den kanei tipota ousiastiko se epipedo arxeiou. Xrisimo einai mono gia tin pliri diagrafi enos oliklirou filesystem, diladi me parametro kapoio device file.
Px einai poly kali idea na kaneis shred olo ton disko prin ton pouliseis se kapoion sto ebay :)

Η διαδικασία σε περιβάλλον Gnome μπορεί να γίνει ευκολότερη αν εγκαταστήσουμε το πακέτο nautilus-actions.
Στη συνέχεια πάμε: Σύστημα-->Προτιμήσεις-->Διαχείριση Ενεργειών Ναυτίλου.
Δημιουργούμε ένα νέο Nautilus Action. Στο Command-->Path γράφουμε shred και στο Parameters ότι επιθυμούμε. Πχ -f -u -z -v.  Στη συνέχεια πάμε στο conditions και επιλέγουμε both.  Σώζουμε το Action και του δίνουμε το όνομα που επιθυμούμε.  Δίνουμε απο το τερματικό nautilus -q και στη συνέχεια πάμε σε ένα αρχείο.
Με δεξί κλίκ θα μας εμφανίζεται η επιλογή shred με τa switch που επιλέξαμε πριν.

nuclear]Sta perisotera moderna filesystems to shred den kanei tipota ousiastiko se epipedo arxeiou. Xrisimo einai mono gia tin pliri diagrafi enos oliklirou filesystem, diladi me parametro kapoio device file.
Px einai poly kali idea na kaneis shred olo ton disko prin ton pouliseis se kapoion sto ebay :)

αν έχω καταλάβει καλά έτσι και αλλιώς από ext3 και μετά η rm γράφει μερικά μηδενικά πάνω στο αρχείο πριν διαγραφεί;

Είναι σωστό αυτό που λέω; Αυτό εννοείς; :)

rizitis]

nuclear]Sta perisotera moderna filesystems to shred den kanei tipota ousiastiko se epipedo arxeiou. Xrisimo einai mono gia tin pliri diagrafi enos oliklirou filesystem, diladi me parametro kapoio device file.
Px einai poly kali idea na kaneis shred olo ton disko prin ton pouliseis se kapoion sto ebay :)

αν έχω καταλάβει καλά έτσι και αλλιώς από ext3 και μετά η rm γράφει μερικά μηδενικά πάνω στο αρχείο πριν διαγραφεί;

Είναι σωστό αυτό που λέω; Αυτό εννοείς; :)

Ναι κ εγώ το έχω απορία τί εννοεί ακριβώς ο nuclear κ θα ήθελα να μάθω παραπάνω. Αν ισχύει αυτό όμως, γιατί μπορούμε (να προσπαθήσουμε) να κάνουμε undelete/recover αρχεία σε ext3; Δε θα έπρεπε να είναι αδύνατον;

Μάλλον το ότι αν σβήσουμε ένα μεμονωμένο αρχείο μπορούμε και πάλι να το επανακτήσουμε. Δεν σβήνεται οριστικά δηλαδή. Εκτός αν εφαρμόσουμε το shred σε ολόκληρο το δίσκο. Μάλλον αυτό εννοεί. 

Χμμ, ναι, έτσι όπως το λες το καταλαβαίνω καλύτερα (αν βέβαια είναι αυτό το νόημα). Ήταν λίγο διφορούμενη η πρόταση του Nuclear κ το πήρα "ανάποδα". (Ότι δηλαδή ένα σύγχρονο filesystem κάνει ούτως ή άλλως κάποιου είδους shred όταν σβήνεται μεμονωμένο αρχείο, οπότε η εφαρμογή που συζητάμε είναι άχρηστη σε τέτοιες περιπτώσεις). Αν είναι έτσι όμως, το επόμενο ερώτημα που μου γεννιέται είναι: σε ένα τέτοιο filesystem, πώς μπορείς να καταστρέψεις ολοκληρωτικά τα ίχνη ενός μεμονωμένου αρχείου, χωρίς να χρειαστεί να γράψεις μηδενικά σε όλο το partition; Κ επίσης, για ποια filesystems μιλάμε αλήθεια όταν λέμε "σύγχρονα"; Ό,τι έχει βγει τα τελευταία 5-10 χρόνια; Λιγότερο; περισσότερο; Εξαιρέσεις; Ξέρει κανείς; Ή ακόμα καλύτερα, για να μη κουράζω κ το κόσμο, κάνα καλό λινκ προς ανάγνωση;

Πάντως εδώ ότι αρχείο έχω διαγράψει με shred -u τα foremost, testdisk και κάποιο άλλο που αυτή την στιγμή μου διαφεύγει το όνομά του, δεν κατάφεραν να το ανακτήσουν.
Και κάτι άλλο πληροφοριακά όσο πιο «βαρύ» είναι το αρχείο τόσο πιο πολύ διαρκεί η διαδικασία. Λέγοντας βαρύ εννοώ πχ αρχεία ήχου ή εικόνας. 

Nai enoo oti den einai eggyimeno oti tha kanei douleia to shred. Ta manpages yparxoun gia na ta diabazoume, oriste to sxetiko apospasma apo to man shred:

CAUTION: Note that shred relies on a very important assumption: that the file system overwrites data in place.  This is the traditional way  to  do  things, but  many  modern file system designs do not satisfy this assumption.  The following are examples of file systems on which shred is not effective, or is not guaranteed to be effective in all file system modes:
  * log-structured or journaled file systems, such as those supplied with AIX and Solaris (and JFS, ReiserFS, XFS, Ext3, etc.)
  * file systems that write redundant data and carry on even if some writes fail, such as RAID-based file systems
  * file systems that make snapshots, such as Network Appliance's NFS server
  * file systems that cache in temporary locations, such as NFS version 3 clients
  * compressed file systems

In the case of ext3 file systems, the above disclaimer applies (and shred is thus of limited effectiveness) only in data=journal mode, which  journals  file data in addition to just metadata.  In both the data=ordered (default) and data=writeback modes, shred works as usual.  Ext3 journaling modes can be changed by adding the data=something option to the mount options for a particular file system in the /etc/fstab file, as documented  in  the  mount  man  page  (man mount).