जवाबों:
पुनरावर्ती रूप findसे निष्पादित करने के लिए कमांड का उपयोग करें shred:
find <dir> -type f -exec shred {} \;
man shred।
srm@ कुकी के उत्तर से कम से कम इस समस्या को हल करने का प्रयास किया जाएगा)।
-exec shred {} +इसे और तेज़ बनाने के लिए उपयोग करें क्योंकि श्रेड कई तर्कों को स्वीकार करता है।
कतरे से सावधान!
श्रेड-मैनपेज से:
चेतावनी: ध्यान दें कि कतरनी एक बहुत ही महत्वपूर्ण धारणा पर निर्भर करती है: यह कि फाइल सिस्टम जगह में डेटा को अधिलेखित कर देता है। यह चीजों को करने का पारंपरिक तरीका है, लेकिन कई आधुनिक फाइल सिस्टम डिजाइन इस धारणा को पूरा नहीं करते हैं। फ़ाइल सिस्टम के उदाहरण निम्न हैं जिस पर श्रेड प्रभावी नहीं है, या सभी फ़ाइल सिस्टम मोड में प्रभावी होने की गारंटी नहीं है:
लॉग-संरचित या जर्नल फ़ाइल सिस्टम, जैसे कि AIX और सोलारिस (और JFS, ReiserFS, XFS, Ext3, आदि) के साथ आपूर्ति की गई।
फ़ाइल सिस्टम जो अनावश्यक डेटा लिखता है और भले ही कुछ लिखने में विफल रहता है, जैसे कि RAID-आधारित फ़ाइल सिस्टम
फाइल सिस्टम जो स्नैपशॉट बनाते हैं, जैसे कि नेटवर्क उपकरण का एनएफएस सर्वर
फ़ाइल सिस्टम जो अस्थायी स्थानों में कैश करते हैं, जैसे कि एनएफएस संस्करण 3 क्लाइंट
संकुचित फ़ाइल सिस्टम
एक्सट 3 फाइल सिस्टम के मामले में, उपरोक्त डिस्क्लेमर केवल डेटा = जर्नल मोड में लागू होता है (और श्रेड इस प्रकार सीमित प्रभावशीलता का है), जो केवल मेटाडेटा के अलावा डेटा फाइल करता है। दोनों डेटा = ऑर्डर किए गए (डिफ़ॉल्ट) और डेटा = राइटबैक मोड्स में, श्रेड हमेशा की तरह काम करता है। Ext3 जर्नलिंग मोड डेटा को जोड़कर / a / etc / fstab फ़ाइल में किसी विशेष फ़ाइल सिस्टम के लिए माउंट विकल्पों में से कुछ विकल्प को माउंट मैन पेज (मैन माउंट) में प्रलेखित किया जा सकता है।
इसके अलावा, फ़ाइल सिस्टम बैकअप और दूरस्थ दर्पण में फ़ाइल की प्रतियां शामिल हो सकती हैं जिन्हें हटाया नहीं जा सकता है, और यह बाद में कटा हुआ फ़ाइल पुनर्प्राप्त करने की अनुमति देगा।
समाधान: एक एन्क्रिप्टेड फ़ाइल सिस्टम का उपयोग करें, और बस अपनी फ़ाइलों को हटा दें।
shredडेटा एन्क्रिप्शन के उपयोग और डेटा को रोकने के लिए ऑफलाइन स्टोरेज डिवाइस (थिंक चोरी या पुलिस) से डेटा को पढ़ने से रोकते हैं, जिसमें सभी फ़ाइलों की सुरक्षा का अतिरिक्त लाभ होता है, न कि केवल (ठीक से) डिलीट किए जाने पर। एक बार जब फ़ाइल सिस्टम आरोहित हो जाता है तो हम किसी भी स्थिति में अच्छे ol 'unix परमिशन पर वापस आ जाते हैं और डेटा सुरक्षा फिर से OS सुरक्षा और उचित सिस्टम एडमिनिस्ट्रेशन का कार्य बन जाता है। अपस्ट्रीम फाइलसिस्टम एन्क्रिप्शन निश्चित रूप से रणनीतिक उपयोग की तुलना में आराम से डेटा की रक्षा करने में बदतर नहीं है shred!
इसके बजाय सुरक्षित डिलीट का उपयोग करें।
sudo apt-get install secure-delete
srm -r pathname
किया हुआ। सिक्योर डिलीट श्रेड की तुलना में बहुत अधिक पागल है, 38 के बजाय 38 पास का उपयोग करता है। एक फास्ट सिंगल पास करने के लिए, उपयोग करें
srm -rfll pathname
fll आपको एक कम यादृच्छिक डेटा जनरेटर, और केवल एक पास देता है।
findआधारित विधियों पर अतिरिक्त लाभ है जो फ़ाइलों को रद्दी करने और उन्हें हटाने से पहले संग्रहीत फ़ाइलनामों को मिटाने का भी प्रयास करेगा।
इस स्टैक ओवरफ्लो लिंक का उपयोग करके श्रेड के लिए सबसे अच्छे ज्ञात विकल्पों के साथ इस उत्तर को जोड़ना ' स्थायी रूप से फाइल को हटाना और सुरक्षित रूप से एनओएसओएस पर :'
find <directory> -depth -type f -exec shred -v -n 1 -z -u {} \;
संपादित करें: ध्यान रखें कि एकल फ़ाइल को श्रेड करने के लिए सर्वश्रेष्ठ उत्तर एक सिंक को मजबूर करता है जो फ़ाइल को हटाने से पहले मीडिया में परिवर्तन लिखते हैं क्योंकि कुछ या सभी जर्नल किए गए फाइल सिस्टम में बफर होता है।
यदि संभव हो, तो खोज कमांड को फ़ाइल पर एक शेल स्क्रिप्ट को कॉल करना चाहिए जो चलता है:
shred -v -n 1 /path/to/your/file #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u /path/to/your/file #overwriting with zeroes and remove the file
प्रत्येक फ़ाइल पर।
rm -rvf $1शेल स्क्रिप्ट में जोड़ा है (जहां $ 1 / पथ / से / आपके / फ़ाइल को {}विस्तार से पारित किया गया है find... -exec)
depthयहाँ क्या करता है? अनुगामी
find /your/directory -exec shred {} \;
find [dirname] -depth -type f -exec shred -n1 {} \;
यह डायरेक्टरी [dirname] में फाइलों के लिए गहराई से पहली खोज करता है, फिर shred -n1प्रत्येक फाइल पर कमांड चलाता है । फ़ाइलों और / या निर्देशिकाओं को हटाते समय, -depthडिफ़ॉल्ट के रूप में जोड़ना एक अच्छी आदत है, भले ही इस मामले के लिए इसकी सख्त आवश्यकता नहीं है। rm -rfइसके बजाय इस प्रकार की कमांड चलाने के दौरान shred, -depthयह सुनिश्चित करने की आवश्यकता होती है कि निर्देशिकाओं की सामग्री को हटाने से पहले निर्देशिकाओं को हटाया नहीं जाता है (इस प्रकार त्रुटियां पैदा होती हैं)।
shred -N 1, क्योंकि डिफ़ॉल्ट, 3 बार श्रेडिंग, साँप का तेल है। या तो एक समय पर्याप्त है, या 30 बार काम नहीं करेगा।
shredमैंने पाया है कि निर्देशिका को भी हटाने के लिए findएक पूरी तरह से विधि है, जिसमें एक स्क्रिप्ट को कॉल करना है shred:
यह विधि भी उन में रिक्त स्थान के साथ फ़ाइल नाम को ठीक से संभालती है।
पहला - shredस्क्रिप्ट (मैंने अपना नाम दिया है dirShredder.shऔर इसे /rootनिर्देशिका में संग्रहीत किया है :
shred -v -n 1 "$1" #overwriting with random data
sync #forcing a sync of the buffers to the disk
shred -v -n 0 -z -u "$1" #overwriting with zeroes and remove the file
rm -rvf "$1" # call rm to remove the directories
फिर, इस तरह से स्क्रिप्ट को कॉल करें:
find /volume1/pathToShred/ -mindepth 1 -depth -exec /root/dirShredder.sh "{}" \;
killit.shफ़ाइल निष्पादन योग्य ( chmod +x) को चिह्नित करना सुनिश्चित करें और निश्चित रूप से उस डायर के लिए पथ को अपडेट करें जिसे आप बिखरना चाहते हैं और dirShredder.shयदि आप कहीं और स्टोर करते हैं।
NOTA BENE - shredकॉपी-ऑन-राइट फाइलसिस्टम (ZFS, BTRFS, et al) और यहां तक कि जर्नलिंग फाइल सिस्टम पर भी समस्याएँ हैं। इससे निपटने के लिए कोई वास्तविक "सर्वश्रेष्ठ" तरीका नहीं है जो मैंने "एन्क्रिप्टेड फाइल सिस्टम" के अलावा पाया है, लेकिन मुझे यकीन नहीं है कि यह वास्तव में प्रभावी है।
निकटतम यह लगता है कि आप प्राप्त कर सकते हैं ड्राइव पर सभी खाली जगह को अपने डेटा के साथ खाली करने के बाद आपके श्रेडिंग ऑप्स (शून्य नहीं है, ऐसा लगता है कि यह हमेशा विश्वसनीय नहीं होता है।) इसके अलावा, SSDs के अन्य विचार भी हो सकते हैं (जैसे TRIM।)
मैं उन लोगों में नहीं जा रहा हूं, अन्य स्टैक उत्तर हैं (उदाहरण के लिए इस प्रश्न में @user अज्ञात उत्तर) और 'नेट में बहुत सारे चर्चाएं हैं जो इन विषयों को कवर करती हैं इसलिए उन्हें खोज करें यदि आपको सुरक्षा के उस स्तर की आवश्यकता है।