मैं यह कैसे सुनिश्चित कर सकता हूं कि कोई निर्देशिका या फ़ाइल वास्तव में हटा दी गई है?


14

मुझे पता है कि हटाए जाने पर अधिकांश फाइलें, वास्तव में डिस्क से नहीं निकाली जाती हैं, और बाद में पुनर्प्राप्त की जा सकती हैं।

मैं यह कैसे सुनिश्चित कर सकता हूं कि जो निर्देशिका मैंने हटाई थी, वह वास्तव में डिस्क से हटा दी जाएगी? क्या उसके लिए उपयोगिताओं हैं?

मैं डेबियन लिनक्स का उपयोग कर रहा हूं।


5
संक्षिप्त उत्तर: आप नहीं कर सकते! लंबे उत्तर: या तो भौतिक रूप से डिस्क को नष्ट कर दें या प्रश्न को फिर से लिखें: डेटा को पुनर्प्राप्त करने में कितना प्रयास करना होगा और इस तरह के प्रयास की सफलता दर क्या होगी?
मार्को

जवाबों:


11

डेटा संग्रहीत करने से पहले उसे एन्क्रिप्ट करें। डेटा को मिटाने के लिए, कुंजी को मिटा दें।

यदि आपने पहले से ही डेटा को सादे संदर्भ में लिखा है, तो इसे सरल तरीके से मिटा देने में बहुत देर हो चुकी है। विभिन्न स्थानों में डेटा बिछाने की कई प्रतियां हो सकती हैं:

  • फाइलसिस्टम पर अगर फाइल कई बार लिखी गई (या तो ओवरराइट या बदली गई);
  • फाइलसिस्टम पर यदि इसे डीफ़्रैग्मेन्टेशन के हिस्से के रूप में फिर से व्यवस्थित किया गया था;
  • पत्रिका में (डेटा अंतिम बार लिखे जाने के बाद यह बहुत तेजी से गायब होने की संभावना है);
  • बैकअप में;
  • अक्षम क्षेत्रों में (विशेषकर एसएसडी पर)।

फाइलसिस्टम पर डेटा की प्रतियों से छुटकारा पाने के लिए, एक क्रूड विधि मुक्त स्थान को भरने के लिए है ( cat /dev/zero >somefileऔर इसके रुकने की प्रतीक्षा करें क्योंकि फाइलसिस्टम भरा हुआ है)। यह सभी पूर्ण ब्लॉकों को अधिलेखित कर देगा।

डेटा के छोटे हिस्से अपूर्ण ब्लॉक में रह सकते हैं जो आंशिक रूप से अन्य फ़ाइलों द्वारा उपयोग किए जाते हैं। यह विशेष रूप से फ़ाइल नामों के लिए एक चिंता का विषय है, जो निर्देशिका सामग्री को संग्रहीत करने वाले ब्लॉक में रह सकते हैं। सब कुछ से छुटकारा पाने के लिए, सभी फ़ाइलों का बैकअप लें, पूरी तरह से फाइल सिस्टम युक्त डिवाइस को ओवरराइट करें, फिर फ़ाइलों को पुनर्स्थापित करें।

संग्रहण मीडिया उन ब्लॉकों में डेटा को बनाए रख सकता है जो अब उपयोग में नहीं हैं। हार्ड डिस्क पर, इसका मतलब है कि खराब ब्लॉक जिन्हें फिर से लगाया गया है; यह एक बहुत ही दुर्लभ घटना है जब तक कि डिस्क नीचे पहनना शुरू नहीं करती है। एसएसडी पर, पहनने के स्तर के कारण यह एक सामान्य घटना है। दोनों मामलों में, खतरा बहुत कम है, क्योंकि उस डेटा तक पहुंचने के लिए थोड़े महंगे हार्डवेयर और बर्बाद करने के लिए समय के साथ कुछ परिष्कृत हमलावर की आवश्यकता होती है। यदि आप इन खतरों के बारे में परवाह करते हैं, तो अपने डेटा को एन्क्रिप्ट करें और अपनी कुंजी को आस-पास न छोड़ें।

ध्यान दें कि आप डेटा को मिटाने के बारे में सलाह दे सकते हैं जैसे कि कई पास कर सकते हैं या शून्य के बजाय यादृच्छिक डेटा का उपयोग कर सकते हैं ("Gutmann wipe)"। इसे भूल जाओ: यह केवल 1980 के दशक के हार्ड डिस्क पर लागू होता है (और फिर भी डेटा पुनर्निर्माण के लिए सस्ता नहीं है और पुनर्निर्माण बल्कि अविश्वसनीय है)। जीरो के साथ ओवरराइटिंग काफी अच्छी है; कई यादृच्छिक पास अप्रचलित सलाह या साँप का तेल है। देखें कि हार्ड ड्राइव पर शून्य (या रैंडम डेटा) क्यों लिख रहा है, यह एक बार करने से कई गुना बेहतर है?


12

वहाँ एक बहुत लोकप्रिय उपकरण कहा जाता है shred। हटाए जाने से पहले यह हर फ़ाइल को 25 बार अधिलेखित करेगा। कि मुझे आप के लिए क्या देख रहे हो सकता है।

श्रेड का उपयोग काफी सरल है

$ shred secret_archive.tar.gz

ध्यान दें कि आधुनिक प्रणालियों में अक्षम या बेकारshred हो सकता है यदि:

  • आपके प्रोग्राम अस्थायी फ़ाइलें बनाते हैं जिनके बारे में आपको जानकारी नहीं है (जैसे कई GUI एप्लिकेशन)
  • आपका FS कॉपी-पर-आधारित है (ZFS या Btrfs की तरह)
  • आपका FS लॉग आधारित है (NILFS की तरह)
  • आपका FS डेटा जर्नलिंग का उपयोग करता है (जैसे JFS, ReiserFS, XFS, ext3 या ext4 कुछ कॉन्फ़िगरेशन में)
  • आपके FS संपीड़न का उपयोग करता है
  • आपका FS विभिन्न स्थानों पर फ़ाइलों के नए संस्करण आवंटित करता है
  • आपके पास स्नैपशॉट या बैक-अप हैं
  • आप एक नेटवर्क FS पर हैं
  • आप पहनने लेवलिंग एल्गोरिदम के साथ एक एसएसडी का उपयोग कर रहे हैं

अन्य और संभावित रूप से अधिक सुरक्षित विकल्प हैं:

  • महत्वपूर्ण डेटा एन्क्रिप्ट करना
  • संपूर्ण विभाजन या संग्रहण डिवाइस को ओवरराइट करना
  • उपकरण का भौतिक विनाश

1
मेरे मैनपेज के अनुसार shred, डेटा = ऑर्डर किए गए (डिफॉल्ट) और डेटा = बैकबैक मोड का उपयोग करते समय भी एक्स 3 (और मैं एक्स 4 का अनुमान लगाता हूं) के साथ भी काम करता है । इसके अलावा एक सरल विकल्प है: फ़ाइल सिस्टम के सभी शेष स्थान पर कब्जा करने वाली एक विशाल फ़ाइल बनाएं ताकि आपकी हटाई गई फ़ाइल फिर से लिखी जाए।
स्काइ

धन्यवाद। मैंने अभी इसे ठीक किया है। journaling -> data jornaling
तफ़र

@scai, विशाल फ़ाइल विधि आवश्यक रूप से काम नहीं करेगी क्योंकि फ़ाइल के ब्लॉक पहले से ही वास्तविक हो चुके हैं और अभी तक नहीं लिखे गए हैं (जैसे कि फ़ेलोकेड डेटा, फ़ाइलों के अंतिम ब्लॉक या
डायर

3
shredसाँप का तेल है: यह कोई बेहतर नहीं है head -c $(wc -c secret_archive.tar.gz)>! secret_archive.tar.gz` जब तक आप 1980 या 1990 के दशक की शुरुआत से हार्ड डिस्क का उपयोग नहीं कर रहे, श्रेड का उपयोग करना हमेशा व्यर्थ होता है।
गिलेस एसओ- बुराई को रोकना '

3
टुकड़ा / bcwipe / आदि। एक फाइल सिस्टम स्तर पर साँप का तेल है। किसी भी फाइलसिस्टम के लिए। फ़ाइलों के साथ काम करने के तरीके के कारण: हर बार जब आप सहेजें पर क्लिक करते हैं, तो पुरानी फ़ाइल हटा दी जाती है (खाली स्थान में रहती है), और एक नई फ़ाइल बनाई जाती है। यदि फाइल सिस्टम पहले से इसके बारे में भूल गया है तो आप इसे नहीं काट सकते। - यह डिवाइस स्तर, या ओवरराइट-ऑल-फ्री-स्पेस स्तर पर अलग है। श्रेड लिनक्स / यूनिक्स में उपलब्ध कुछ तेज यादृच्छिक डेटा स्रोतों में से एक है। / dev / (यू) यादृच्छिक रूप से बहुत बड़ी मात्रा में डेटा को अधिलेखित करने के लिए उपयोग करने योग्य नहीं है। - तो एक सिंगल श्रेड पास डिवाइस या फ्री स्पेस के लिए ठीक है, सिर्फ सिंगल फाइल के लिए नहीं
फ्रॉस्ट्सचुट्ज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.