আমি কীভাবে পুনরাবৃত্তভাবে একটি সম্পূর্ণ ডিরেক্টরি ট্রি ছিটিয়ে দেব?


47

আমার একটি ডিরেক্টরি ট্রি আছে যা আমি লিনাক্সের 'শ্যাডড' ইউটিলিটি দিয়ে ছেঁড়াতে চাই। দুর্ভাগ্যক্রমে, শ্রেডের -Rপুনরাবৃত্ত শেফডিংয়ের কোনও বিকল্প নেই ।

আমি কীভাবে একটি সম্পূর্ণ ডিরেক্টরি গাছকে পুনরাবৃত্তভাবে ছিটিয়ে দিতে পারি?

উত্তর:


45

পুনরাবৃত্তভাবে findকার্যকর করতে কমান্ডটি ব্যবহার করুন shred:

find <dir> -type f -exec shred {} \;

এটি-ডিপথ বিকল্প ছাড়া কি কাজ করে? এটি আধুনিক, জার্নালিং ফাইল সিস্টেমগুলিতে কাজ করে?
ব্যবহারকারী অজানা

@ ব্যবহারকারীর নাম না, শ্রড আধুনিক জার্নালিং ফাইল সিস্টেমগুলিতে কাজ করে না। আরও সুনির্দিষ্ট তথ্যের জন্য, দয়া করে দেখুন man shred
FanaticD

এছাড়াও নোট করুন যে এই পদ্ধতিটি ফাইলের নাম মুছে ফেলতেও চেষ্টা করবে না , সুতরাং এর মতো সঞ্চিত কোনও ডেটা অবশ্যই অবশ্যই পিছনে থাকবে ( srm@ কুকির উত্তর থেকে কমপক্ষে এই সমস্যাটিকে কমিয়ে আনার চেষ্টা করা হবে)।
ntninja

-exec shred {} +শ্রেড একাধিক যুক্তি গ্রহণ করার পরে এটিকে দ্রুত করার জন্য ব্যবহার করুন ।
সুমিত

28

টুকরাক থেকে সাবধান!

টুকরো টুকরো টুকরো থেকে:

সতর্কতা: নোট করুন যে শেড একটি খুব গুরুত্বপূর্ণ অনুমানের উপর নির্ভর করে: ফাইল সিস্টেমের জায়গায় ডেটা ওভাররাইট করে। এটি জিনিসগুলি করার theতিহ্যগত উপায়, তবে অনেকগুলি আধুনিক ফাইল সিস্টেম ডিজাইন এই অনুমানটি পূরণ করে না। নিম্নলিখিত ফাইল সিস্টেমগুলির উদাহরণ রয়েছে যাগুলির উপর শ্রেড কার্যকর নয়, বা সমস্ত ফাইল সিস্টেমের পদ্ধতিতে কার্যকর হওয়ার গ্যারান্টিযুক্ত নয়:

  • লগ-কাঠামোগত বা ভ্রমণ ফাইল ফাইলগুলি যেমন এআইএক্স এবং সোলারিস সরবরাহ করে (এবং জেএফএস, রিজারফারস, এক্সএফএস, এক্সট্রোল ইত্যাদি)

  • ফাইল সিস্টেম যা অপ্রয়োজনীয় ডেটা লিখে এবং চালিত করে এমনকি কিছু লেখার ব্যর্থতা যেমন RAID- ভিত্তিক ফাইল সিস্টেম

  • ফাইল সিস্টেম যা স্ন্যাপশট তৈরি করে, যেমন নেটওয়ার্ক অ্যাপ্লায়েন্সের এনএফএস সার্ভার

  • ফাইল সিস্টেমগুলি যা অস্থায়ী স্থানে ক্যাশে করে, যেমন এনএফএস সংস্করণ 3 ক্লায়েন্ট

  • সংকুচিত ফাইল সিস্টেম

Ext3 ফাইল সিস্টেমের ক্ষেত্রে, উপরোক্ত অস্বীকৃতি কেবলমাত্র ডেটা = জার্নাল মোডে প্রয়োগ হয় (এবং এইভাবে টুকরোটি সীমাবদ্ধ কার্যকরভাবে কার্যকর হয়) যা কেবল মেটাডেটা ছাড়াও ফাইলের ডেটা জার্নাল করে। উভয় ডেটা = অর্ডার করা (ডিফল্ট) এবং ডেটা = রাইবব্যাক মোডে ছেঁড়া স্বাভাবিক হিসাবে কাজ করে। মাউন্ট ম্যান পৃষ্ঠাতে (ম্যান মাউন্ট) নথিবদ্ধ হিসাবে / etc / fstab ফাইলের মধ্যে একটি নির্দিষ্ট ফাইল সিস্টেমের জন্য মাউন্ট অপশনগুলিতে ডেটা = কিছু বিকল্প যুক্ত করে Ext3 জার্নালিং মোডগুলি পরিবর্তন করা যেতে পারে।

এছাড়াও, ফাইল সিস্টেমের ব্যাকআপ এবং রিমোট মিররগুলিতে ফাইলের অনুলিপি থাকতে পারে যা অপসারণ করা যায় না এবং এটি একটি ছেঁকে যাওয়া ফাইলটি পরে পুনরুদ্ধার করার অনুমতি দেবে।

সমাধান: একটি এনক্রিপ্ট করা ফাইল সিস্টেম ব্যবহার করুন এবং কেবল আপনার ফাইলগুলি মুছুন।


ছেদযুক্ত পয়েন্টারের জন্য +1, এর আগে আমারও একই ধরণের ঘটনা ছিল। এটি নেট অ্যাপের এনএফএসে কাজ করে না। নেটঅ্যাপ ডাব্লুএএফএল ব্যবহার করে এবং যা মেটাজর্নাল্লিং সহ কপিরাইট অন রাইটিং ব্যবহার করে, তাই এটির অধিকার। সর্বশেষ সোলারিসের 'জেডএফএস' এর সাথে আরেকটি ঘটনা রয়েছে যেখানে শেড শেড হয়।
নিখিল মুলি

6
এটি একটি খারাপ সমাধান। একটি এনক্রিপ্ট করা ফাইল সিস্টেমটি কেবলমাত্র এটি লক হওয়া (এবং তাই আনমাউন্টযুক্ত) না হওয়া পর্যন্ত নিরাপদ। আপনার ওএস চালু হওয়ার সাথে সাথেই ডেটা আপ-দখল হয়ে যায়।
oleks

3
@ ওলিক্স: উভয়ই shredডেটা এনক্রিপশন এবং অফলাইন স্টোরেজ ডিভাইস (চুরি বা পুলিশ ভাবেন) ডেটা এনক্রিপশন সহ সমস্ত ফাইলগুলি সুরক্ষিত করার অতিরিক্ত সুবিধা রয়েছে, কেবল ফাইলগুলি (সঠিকভাবে) মুছে ফেলা না করে পড়তে বাধা দেয়। একবার ফাইল সিস্টেম মাউন্ট হয়ে গেলে আমরা উভয় ক্ষেত্রেই ভাল অ্যাল 'ইউনিক্স অনুমতিগুলিতে ফিরে আসি এবং ডেটা সুরক্ষা আবার ওএস সুরক্ষা এবং সঠিক সিস্টেম প্রশাসনের কাজ হয়ে যায়। আপফ্রন্ট ফাইল সিস্টেম এনক্রিপশন কৌশলগত ব্যবহারের চেয়ে বিশ্রামে ডেটা সুরক্ষায় অবশ্যই খারাপ নয়shred !
ntninja

12

পরিবর্তে সুরক্ষিত মোছা ব্যবহার করুন।

sudo apt-get install secure-delete
srm -r pathname

সম্পন্ন. সুরক্ষিত মোছা 3 এর পরিবর্তে 38 টি পাস ব্যবহার করে ছেঁড়ার চেয়ে অনেক বেশি বিড়ম্বনাজনক a দ্রুত একক পাস করতে, ব্যবহার করুন

srm -rfll pathname

fll আপনাকে কম এলোমেলো ডেটা জেনারেটর এবং কেবল একটি একক পাস দেয়।


এটি unix.stackexchange.com/a/27075/18886 এ উল্লিখিত সমস্যাটি সমাধান করে ?
ইয়ান ডান

এটা কিভাবে পারে? না
কুকি

নোট করুন যে প্রস্তাবিত- findভিত্তিক পদ্ধতিগুলির তুলনায় এই পদ্ধতির অতিরিক্ত সুবিধা রয়েছে যা সংরক্ষণ করা ফাইলের নামগুলি ফাইলের নাম কাটাতে এবং লিঙ্কমুক্ত করার আগে মুছে ফেলার চেষ্টা করবে।
ntninja

@ এন্নিঞ্জা-ভিত্তিক পদ্ধতিগুলি শেড এবং শ্রেড ব্যবহার করে ফাইলগুলি মুছে ফেলার আগে তাদের পুনরায় নামকরণ করে। তাই ঠিক একই সুবিধা?
tuxayo

11

এই স্ট্যাকের ওভারফ্লো লিঙ্ক ' ফাইলগুলি স্থায়ীভাবে এবং সুরক্ষার সাথে CentOS এ মুছে ফেলা হচ্ছে ' ব্যবহার করে শ্রের জন্য সর্বাধিক পরিচিত বিকল্পগুলির সাথে এই উত্তরটির সংমিশ্রণ :

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শেল স্ক্রিপ্টের সাথে সংযুক্ত ডিরেক্টরিগুলি সরিয়ে দেয় না (যেখানে the 1 হ'ল পথ / পথে / আপনার / ফাইলটি {}প্রসারিত হতে প্রেরণ করা হয়েছে find... -exec)
জোয়েলআজ

4
শ্র্রেড ইতিমধ্যে প্রতিটি পাসের পরে একটি fsync (2) করে। যথাযথ কারণ আপনার পরবর্তী পাসের আগে ডিস্কে পৌঁছাতে ফাইল পরিবর্তনগুলি বাধ্য করতে হবে।
আঞ্জেল

depthএখানে কি করে ?
চলমান

5
find /your/directory -exec shred {} \;

উত্সাহিত, কিন্তু জেমস আপনাকে গ্রহণের জন্য এক মিনিটের ব্যবধানে পরাজিত করেছিল।
স্টিভ ভি।

এটি-ডিপথ বিকল্প ছাড়া কি কাজ করে? এটি আধুনিক, জার্নালিং ফাইল সিস্টেমগুলিতে কাজ করে?
ব্যবহারকারী অজানা

3
find [dirname] -depth -type f -exec shred -n1 {} \;

এটি ডিরেক্টরি [dirname] ফাইলগুলির জন্য একটি গভীরতার-প্রথম অনুসন্ধান সম্পাদন করে, তারপরে shred -n1প্রতিটি ফাইলে কমান্ড চালায় । ফাইল এবং / অথবা ডিরেক্টরিগুলি সরানোর সময়, -depthডিফল্ট হিসাবে যুক্ত করা একটি ভাল অভ্যাস, যদিও এই ক্ষেত্রে এর কঠোর প্রয়োজন হয় না। যখন সঙ্গে কমান্ডের এই ধরনের চলমান rm -rfপরিবর্তে shred, -depthতা নিশ্চিত করার জন্য ডিরেক্টরি ডিরেক্টরি বিষয়বস্তু (এইভাবে ত্রুটি করে) মুছে ফেলা হবে চেষ্টা করা হয়, আগে মুছে ফেলা হয় না প্রয়োজন হয়।


3
আপনার ব্যবহার করা উচিত shred -N 1, কারণ ডিফল্ট, 3 বার কাটা, হ'ল সাপ তেল। হয় এক সময় যথেষ্ট, অথবা 30 বার কাজ করবে না।
ব্যবহারকারী অজানা

উত্তর হিসাবে একটি সহজ কমান্ড সরবরাহ করা কোনও প্রশ্নের উত্তর দেওয়ার সর্বোত্তম উপায় নয়। আমি লাইনটি কী করছে এবং এটি ব্যবহারের সাথে জড়িত সম্ভাব্য সীমাবদ্ধতা সম্পর্কে একটি ছোট ব্যাখ্যা যুক্ত করার পরামর্শ দেব।
n0pe

0

সর্বাধিক বিস্তৃত shredপদ্ধতি আমি খুঁজে পেয়েছি, যার মধ্যে ডিরেক্টরি মুছে ফেলাও অন্তর্ভুক্ত রয়েছে, findএটির জন্য একটি স্ক্রিপ্ট কল করা উচিত shred:

  • ফাইলটি ওভাররাইট করুন
  • সুসংগত
  • তারপরে মুছুন
  • এবং অবশেষে ডিরেক্টরিগুলির নামগুলি সরাতে rm কল করুন।

এই পদ্ধতিটি ফাঁকা জায়গাগুলির সাথে ফাইলের নামগুলিও সঠিকভাবে পরিচালনা করে।

প্রথম - 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) ফাইলটি চিহ্নিত করার বিষয়টি নিশ্চিত করুন এবং অবশ্যই আপনি যে dir ছিঁড়ে ফেলতে চান তার জন্য এবং dirShredder.shযদি আপনি এটি অন্য কোথাও সঞ্চয় করেন তবে তার পথ আপডেট করুন ।

নোট বেন - shredএর অনুলিপি-অন-লিখন ফাইল সিস্টেমগুলি (জেডএফএস, বিটিআরএফএস, এবং অন্যান্য) এমনকি জার্নালিং ফাইল সিস্টেমগুলিতেও সমস্যা রয়েছে। এটির সাথে মোকাবিলা করার জন্য সত্যিকারের কোন গ্রহণযোগ্য "সেরা" উপায় নেই যা আমি "এনক্রিপ্ট করা ফাইল সিস্টেম" ব্যতীত অন্য কাউকে খুঁজে পেয়েছি তবে বাস্তবে সত্য যে এটি কতটা কার্যকর তা আমি নিশ্চিত নই।
আপনি যে নিকটতম এটি পেতে পারেন তা হ'ল ড্রাইভের সমস্ত শূন্য স্থানটি আপনার শ্যাডিং অপ্সের পরে এলোমেলো ডেটা (জিরো নয়, মনে হয় এটি সর্বদা নির্ভরযোগ্য নয়)

আমি এখানে তাদের মধ্যে যাচ্ছি না, অন্যান্য স্ট্যাক উত্তর রয়েছে (উদাহরণস্বরূপ এই প্রশ্নে ব্যবহারকারী অজানা এর উত্তর) এবং 'নেটগুলি জুড়ে এই নেটকে জুড়ে প্রচুর আলোচনা তাই আপনার যদি সেই স্তরের সুরক্ষার প্রয়োজন হয় তবে সেগুলি সন্ধান করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.